1 log4j 包导入
首先导入jar包:log4j-1.2.17.jar
2 创建日志配置文件
在WEB-INF目录下创建配置文件:log4j.properties,内容如下:
###################
# Console Appender
###################
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.Threshold = WARN
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = \r\n\u7EA7\u522B\:%p\r\n\u4FE1\u606F\:%m\r\n\u4F4D\u7F6E\:%l\r\n\u65F6\u95F4\:%d\r\n\u7C7B\u76EE\:%c\r\n\u7EBF\u7A0B\:%t\r\n
########################
# DailyRolling File
########################
log4j.appender.FILE = org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File = ${whowii.ssh}/WEB-INF/logs/syslog.log
log4j.appender.FILE.MaxBackupIndex = 5
log4j.appender.FILE.MaxFileSize = 2000KB
log4j.appender.FILE.Threshold = WARN
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n\r\n
log4j.logger.org.apache = INFO
log4j.rootLogger = INFO,CONSOLE,FILE
log4j配置文件请查阅相关文档,网上很多,这里不详述。这里配置的是把INFO级别日志输出到两个地方,即控制台和文件。
另外,需要说明的是配置项“log4j.appender.FILE.File”中的“whowii.ssh”,这里是获取项目的绝对目录,日志文件最终会写入到项目部署路径下的/WEB-INF/logs/syslog.log。这里的whowii.ssh与web.xml中的配置项“webAppRootKey”有关:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>whowii.ssh</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
3 log使用示例
通过工厂创建示例,参数是当前代码类的class:
Log log = LogFactory.getLog(DepartmentDao.class);
log.debug("准备读取部门");