美文网首页
springboot配置log4j2输出mybatis的sql语

springboot配置log4j2输出mybatis的sql语

作者: 万事俱备就差一个程序员了 | 来源:发表于2022-03-01 19:30 被阅读0次

1、日志记录效果图

2、控制台输出效果图

3、application-dev.yml

# mybatis

mybatis:

  mapper-locations: classpath:mapper/*.xml  #注意:一定要对应mapper映射xml文件的所在路径

  type-aliases-package: com.xuan.entity  # 注意:对应实体类的路径

  configuration:

    #org.apache.ibatis.logging.stdout.StdOutImpl 控制台打印sql语句方便调试sql语句执行错误

    #org.apache.ibatis.logging.log4j2.Log4j2Impl:这个不在控制台打印查询结果,但是在log4j中打印

    log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl

    mapUnderscoreToCamelCase: true # 开启驼峰命名转换法

# 指定log4j2作为日志记录

logging:

    config: classpath:log4j2-dev.xml

    level:

    #这个指定你的dao层,也就是mapper文件的所在包

      com.xuan.dao: DEBUG

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

4、log4j2-dev.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->

<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->

<configuration monitorInterval="5">

    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!--变量配置-->

    <Properties>

        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->

        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->

        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />

        <!-- 定义日志存储的路径,不要配置相对路径 -->

        <property name="FILE_PATH" value="./logs/" />

        <property name="FILE_NAME" value="lipstick_backend" />

    </Properties>

    <appenders>

        <console name="Console" target="SYSTEM_OUT">

            <!--输出日志的格式-->

            <PatternLayout pattern="${LOG_PATTERN}"/>

            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>

        </console>

        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用-->

        <File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">

            <PatternLayout pattern="${LOG_PATTERN}"/>

        </File>

        <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">

            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>

            <PatternLayout pattern="${LOG_PATTERN}"/>

            <Policies>

                <!--interval属性用来指定多久滚动一次,默认是1 hour-->

                <TimeBasedTriggeringPolicy interval="1"/>

                <SizeBasedTriggeringPolicy size="10MB"/>

            </Policies>

            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->

            <DefaultRolloverStrategy max="15"/>

        </RollingFile>

        <!-- 这个会打印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">

            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>

            <PatternLayout pattern="${LOG_PATTERN}"/>

            <Policies>

                <!--interval属性用来指定多久滚动一次,默认是1 hour-->

                <TimeBasedTriggeringPolicy interval="1"/>

                <SizeBasedTriggeringPolicy size="10MB"/>

            </Policies>

            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->

            <DefaultRolloverStrategy max="15"/>

        </RollingFile>

        <!-- 这个会打印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">

            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->

            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>

            <PatternLayout pattern="${LOG_PATTERN}"/>

            <Policies>

                <!--interval属性用来指定多久滚动一次,默认是1 hour-->

                <TimeBasedTriggeringPolicy interval="1"/>

                <SizeBasedTriggeringPolicy size="10MB"/>

            </Policies>

            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->

            <DefaultRolloverStrategy max="15"/>

        </RollingFile>

    </appenders>

    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->

    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->

    <loggers>

        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->

        <logger name="org.mybatis" level="info" additivity="false">

            <AppenderRef ref="Console"/>

        </logger>

        <!--监控系统信息-->

        <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->

        <Logger name="org.springframework" level="info" additivity="false">

            <AppenderRef ref="Console"/>

        </Logger>

        <!--配置输出sql语句-->

        <logger name="org.apache.ibatis" level="DEBUG"/>

        <logger name="java.sql.Connection" level="DEBUG"/>

        <logger name="java.sql.Statement" level="DEBUG"/>

        <logger name="java.sql.PreparedStatement" level="DEBUG"/>

        <root level="info">

            <appender-ref ref="Console"/>

            <appender-ref ref="Filelog"/>

            <appender-ref ref="RollingFileInfo"/>

            <appender-ref ref="RollingFileWarn"/>

            <appender-ref ref="RollingFileError"/>

        </root>

    </loggers>

</configuration>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

————————————————

版权声明:本文为CSDN博主「夜空中的小轩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_41741884/article/details/103012745

相关文章

网友评论

      本文标题:springboot配置log4j2输出mybatis的sql语

      本文链接:https://www.haomeiwen.com/subject/wekjrrtx.html