一、Log4j的组成
1. Logger组件(记录器组件负责产生日志)
2. Appender组件(信息通过Appender组件输出到目的地,控制台、文件等)
3. Layout组件(负责格式化输出的日志信息)
二、简单配置log4j.properties
详细配置文档下载地址: http://download.csdn.net/detail/u011631266/6542375
log4j.rootLogger=WARN,INFO,stdout,file
log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p%d{yyyy-MM-dd(HH:mm:ss)} %c - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.File=F:/ch19.log
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p%d{yyyy-MM-dd(HH:mm:ss)} %c - %m%n
#JDBC,此处创建的记录器相应的类或包下面有打印语句时才能记录日志
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
三、使用Log4j
1. 导入Log4j所需jar包
2. 得到日志记录器,继承于根记录器
static Logger logger = Logger.getLogger(Hello.class);
3. 读取配置文件(若log4j.properties放在项目的src下可省略此步)
String prefix = getServletContext().getRealPath("/"); //得到上下文路径在服务器上的真实路径
String file = getInitParameter("log4j-init-file"); //得到web.xml中配置文件的相对路径
if(file != null)
{
PropertyConfigurator.configure(prefix+file); //读取key-value形式的配置文件
}
//web.xml中 log4j-init-file 配置
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>test.Hello</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<!--<param-value>WEB-INF/log4j.properties</param-value>-->
<!--<param-value>WEB-INF/jdbc.properties</param-value>-->
<param-value>WEB-INF/log4j.xml</param-value>
</init-param>
</servlet>
4. 插入记录日志的语句
//级别有DEBUG、INFO、WARN、ERROR、FATAL
logger.info("main");
logger.error(e.getMessage(),e);