美文网首页
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