- log4j.properties 配置简单,但不支持复杂的过滤器filter;
- log4j.xml 文件看起来复杂,但支持复杂过滤器filter和Log4j的新特性;(推荐)
- 日志的优先级:(高------>低)OFF,FATAL,ERROR,WARN,INFO,DEBUG,log,ALL自定义级别,这样可以控制到应用程序中相应级别的日志信息开关。
- 日志信息输出目的地:一个输出源称之为appender,以下是 Log4j提供的几个appender:
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- 日志信息输出格式:
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
PropertyConfigurator.configure( " F:/Code/conf/log4j.properties " );
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
}
}
- 将log4j.properties放在source目录下,然后编译的时候会在WEB-INF/classes/log4j.properties下
log4j.rootLogger = DEBUG, D , E### CONSOLE ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c:%L - %m%n### FILE DEBUG ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.Append = falselog4j.appender.E.Threshold = DEBUGlog4j.appender.D.File = ${webappHome}/WEB-INF/logs/info.loglog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### FILE ERROR ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =${webappHome}/logs/error.loglog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%nlog4j.appender.cmdstdout=org.apache.log4j.ConsoleAppenderlog4j.appender.cmdstdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.cmdstdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n### LIMIT CATEGORIESlog4j.logger.org.jbpm=INFOlog4j.logger.org.jbpm.graph=INFO
- 初始化一个servlet:
public class Log4jInit extends HttpServlet {
public void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");
System.setProperty("webappHome", webappHome);
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
public
void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
- 配置servlet
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.foo.Log4jInit</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/classes/log4j.lcf</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
5725



被折叠的 条评论
为什么被折叠?



