1. log4j 的配置方式:
Log4j支持两种配置方式,一种是在代码中进行配置,一种是使用配置文件经行配置。使用配置文件进行配置时,Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties格式的文件。
在项目中我们一般是使用配置文件的方式进行配置。
下面我们介绍一下 properties 方式配置log4j 环境的方式。
2.在pom.xml 中加入log4j 的dependency,之后就会添加三个包 slf4j-api-1.6.1.jar、slf4j-log4j12-1.7.2.jar、log4j-1.2.17.jar
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
3.在src/main/resources下配置 log4j.xml 或者log4j.properties 文件
-- 不一定需要 4.private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);
5.在pom.xml中配置资源的路径,是为了在在pom.xml 加载包的同时加载资源文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</plugin>
6.在web.xml 下,设置由Sprng载入的Log4j配置文件位置
<!-- psj -->
<!-- 设置由Sprng载入的Log4j配置文件位置 -->>
<!-- <context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
Spring刷新Log4j配置文件变动的间隔,单位为毫秒
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener> -->
<!-- psj -->
log4j.properties 属性文件的配置:
log4j.appender.encoding = UTF-8
#定义输出级别
#log4j.rootLogger=ERROR,ERRORLOG
log4j.rootLogger=INFO,CONSOLE,DEBUG,APPLOG,ERROR,ERRORLOG,stdout
#日志的输出方式:控制台输出
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
#指定布局格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n
###################
# APPLOG 输出到日志文件,级别
###################
log4j.appender.APPLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.APPLOG.Append=true
log4j.appender.APPLOG.DatePattern='_'yyyyMMdd'.log'
log4j.appender.APPLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.APPLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n
log4j.appender.APPLOG.File=/var/aicpay/logs/aicpay/access/AppAccessLog
log4j.appender.APPLOG.MaxBackupIndex=1
log4j.appender.APPLOG.MaxFileSize=50000KB
###################
# ERRORLOG 输出到日志文件,输出级别为error级别的日志
###################
log4j.appender.ERRORLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERRORLOG.Threshold=ERROR
log4j.appender.ERRORLOG.Append=true
log4j.appender.ERRORLOG.DatePattern='_'yyyyMMdd'.log'
log4j.appender.ERRORLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.ERRORLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n
log4j.appender.ERRORLOG.File=/var/aicpay/logs/aicpay/error/AppErrorLog
log4j.appender.ERRORLOG.MaxBackupIndex=1
log4j.appender.ERRORLOG.MaxFileSize=50000KB
###\u663e\u793aSQL\u8bed\u53e5\u90e8\u5206
# MyBatis logging configuration...
log4j.logger.com.yonche=TRACE //这个地方比较重要 ,哪个包需要打印sql 语句,根据自己的包自己调整
com.yonche 是项目的包名
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
#打印sql
### mybatis loggers ###
log4j.logger.com.ibatis=DEBUG,stdout
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG,stdout
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG,stdout
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG,stdout
# sql loggers
log4j.logger.java.sql.Connection=DEBUG,stdout
log4j.logger.java.sql.Statement=DEBUG,stdout
log4j.logger.java.sql.PreparedStatement=DEBUG,stdout
log4j.logger.java.sql.ResultSet=DEBUG,stdout