日志基于Sping MVC、MyBatis、Maven配置
- 依赖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