slf4j +log4j2 日志 配置

日志基于Sping MVC、MyBatis、Maven配置

  1. 依赖jar包配置
<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
     <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-web</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.3.6</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.25</version>
    </dependency>

2 、web.xml 配置

  <context-param>  
        <param-name>isLog4jAutoInitializationDisabled</param-name>  
        <param-value>true</param-value>  
    </context-param>  
    <!-- 默认就会找这个文件,不需要额外配置引用  
    <context-param>  
        <param-name>log4jConfiguration</param-name>  
        <param-value>classpath:/log4j2.xml</param-value>  
    </context-param>  
   -->
    <listener>  
        <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>  
    </listener>  

    <filter>  
        <filter-name>log4jServletFilter</filter-name>  
        <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>log4jServletFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
        <dispatcher>REQUEST</dispatcher>  
        <dispatcher>FORWARD</dispatcher>  
        <dispatcher>INCLUDE</dispatcher>  
        <dispatcher>ERROR</dispatcher>  
    </filter-mapping>

3、mybatis-config.xml 配置文件

在settings中加入该配置

 <setting name="logImpl" value="LOG4J2" />

4、spring-mybatis.xml 配置

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSourceHikari" />  
         <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:com/test/dao/*.xml"></property>  
    </bean>  

5、log4j2.xml 配置

<?xml version="1.0" encoding="utf-8" ?>
<Configuration status="info" monitorInterval="1800">
    <properties>
        <property name="LOG_HOME">F:\logs</property>
        <property name="ERROR_LOG_FILE_NAME">runlog</property>
    </properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p (%F:%L) - %m%n" />
        </Console>
        <RollingRandomAccessFile name="FileLog"
                                 fileName="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log"
                                 filePattern="${LOG_HOME}/${ERROR_LOG_FILE_NAME}.log.%d{yyyy-MM-dd}.gz">
            <PatternLayout pattern="%d %-5p (%F:%L) - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <logger name="org.springframework.core" level="info"/>
        <logger name="org.springframework.beans" level="info"/>
        <logger name="org.springframework.context" level="info"/>
        <logger name="org.springframework.web" level="info"/>
        <!-- 将业务dao接口填写进去,并用控制台输出即可 -->  
        <logger name="com.test.dao" level="trace" additivity="false"> 
            <appender-ref ref="Console"/>  
        </logger>  
         <root level="info" includeLocation="true">
            <appender-ref ref="Console"/>
        </root>
    </Loggers>
</Configuration>

基本的配置就结束了。
在Loggers的root 中设置appender-ref ,可以选择在控制台输出日志还是写入日志文件。

6、初始化日志对象

private static final Logger logger = LoggerFactory.getLogger(DissServiceImpl.class);
    @Autowired
    private UserMapper UserMapper;

    @Override
    public List<User> gerUsers() {
        logger.info("test runlog");
        return UserMapper.gerUsers();
    }

7、测试结果

2017-09-24 15:17:26,303 INFO  (DissServiceImpl.java:22) - test runlog
2017-09-24 15:17:26,351 DEBUG (BaseJdbcLogger.java:145) - ==>  Preparing: SELECT * FROM USER 
2017-09-24 15:17:26,381 DEBUG (BaseJdbcLogger.java:145) - ==> Parameters: 
2017-09-24 15:17:26,403 TRACE (BaseJdbcLogger.java:151) - <==    Columns: ID, username, sex
2017-09-24 15:17:26,403 TRACE (BaseJdbcLogger.java:151) - <==        Row: 1, 王富华, 男
2017-09-24 15:17:26,409 TRACE (BaseJdbcLogger.java:151) - <==        Row: 2, 王富贵, 男
2017-09-24 15:17:26,410 TRACE (BaseJdbcLogger.java:151) - <==        Row: 3, 王贵, qw
2017-09-24 15:17:26,410 TRACE (BaseJdbcLogger.java:151) - <==        Row: 4, XXX, A
2017-09-24 15:17:26,411 TRACE (BaseJdbcLogger.java:151) - <==        Row: 5, eee, q
2017-09-24 15:17:26,412 DEBUG (BaseJdbcLogger.java:145) - <==      Total: 5

修改 appender-ref=FileLog
这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值