slf4j +log4j2 日志 配置

来源:互联网 发布:淘宝司法拍卖平台 编辑:程序博客网 时间:2024/04/29 20:00

日志基于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 runlog2017-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, sex2017-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, 王贵, qw2017-09-24 15:17:26,410 TRACE (BaseJdbcLogger.java:151) - <==        Row: 4, XXX, A2017-09-24 15:17:26,411 TRACE (BaseJdbcLogger.java:151) - <==        Row: 5, eee, q2017-09-24 15:17:26,412 DEBUG (BaseJdbcLogger.java:145) - <==      Total: 5

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

原创粉丝点击