log4j日志系统使用记录
来源:互联网 发布:淘宝一个月能刷多少单 编辑:程序博客网 时间:2024/05/22 16:02
情景:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
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 " );
}
}
tomcat中配置log4j,适用于所有webapp
webapp中配置log4j,适用于单个webapp
1、配置文件的放置
自动加载(无需在log4j初始化中加载): 默认情况下log4j会在source folder下寻找log4j.xml,若没有则寻找log4j.properties;
手动加载(需要在log4j初始化中加载):若需要将log4j.properties放置在其他目录下,则需要手动加载;在初始化时使用
PropertyConfigurator.configure("log4j.properties");
2、配置文件说明:
- log4j.properties 配置简单,但不支持复杂的过滤器filter;
- log4j.xml 文件看起来复杂,但支持复杂过滤器filter和Log4j的新特性;(推荐)
log4j配置文件由下面三个重要部分构成:
- 日志的优先级:(高------>低)OFF,FATAL,ERROR,WARN,INFO,DEBUG,log,ALL自定义级别,这样可以控制到应用程序中相应级别的日志信息开关。
格式:log4j.rootLogger = [ level ] , appenderName, appenderName, …
比如定义log4j.rootLogger = INFO 那意味着DEBUG的信息将不能被输出
- 日志信息输出目的地:一个输出源称之为appender,以下是 Log4j提供的几个appender:
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- 日志信息输出格式:
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
布局时的打印参数:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %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 )
3、使用
3.1 java项目中需要这样使用
public class TestLog4j {
public static void main(String[] args) {PropertyConfigurator.configure( " F:/Code/conf/log4j.properties " );
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
}
}
3.2 java web项目中使用
- 将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>
参考博客:
1、LOG4J.PROPERTIES配置详解 http://www.blogjava.net/alexprefect/articles/372959.html ;
2、log4j的配置文件介绍 http://lengbingteng-163-com.iteye.com/blog/1114906
0 0
- log4j日志系统使用记录
- 使用Log4j记录系统日志(转载)
- 使用log4j.xml配置系统记录日志
- 使用log4j记录日志
- 使用log4j记录日志
- 使用log4j记录日志
- 使用Log4j记录日志
- 使用log4j记录日志
- 使用Log4j记录日志
- 使用log4j记录日志
- LOG4J日志使用记录
- 使用 Log4j 将日志记录到远程系统
- 使用 Log4j 将日志记录到远程系统
- 使用Log4j进行日志记录
- 使用log4j进行日志记录
- 使用log4j进行日志记录
- 使用log4j记录日志文件
- 使用日志记录工具log4j
- jsp .cookies
- 一个华为人辞职创业后的几个反思
- iOS 按钮set Enable or Disable
- DHT网络原理制作bt采集蜘蛛,开源版
- visual studio 2010 LNK1123解决方案
- log4j日志系统使用记录
- Qt移动应用开发(二):使用动画框架
- 利用DHT网络原理制作bt采集蜘蛛,开源版
- github之配置Tortoisegit
- 替代空格
- 学习boost之0 开发一个日历
- 七种qsort排序方法
- 现在公开一个DHT网络爬虫
- poj 4004:数字组合