`
xcy13638760
  • 浏览: 52692 次
社区版块
存档分类
最新评论

log4j配置明细

 
阅读更多

Log4J总是用总是忘记,从网上找了几个相关文章,今天标注下。

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。


1. 配置文件
Log4J配置文件的基本格式如下:

#配置根Logger
log4j.rootLogger
= [ level ] , appenderName1 , appenderName2 ,


#配置日志信息输出目的地Appender
log4j.appender.appenderName
=
fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1
=
value1
  …
  log4j.appender.appenderName.optionN
=
valueN

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout
=
fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1
=
value1
  …
  log4j.appender.appenderName.layout.optionN
= valueN

其中 [level] 是日志输出级别,共有5级:
FATAL 0
ERROR
3

WARN
4

INFO
6

DEBUG
7


Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
  %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 )

2. 在代码中初始化Logger:
1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG.
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。

3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改AppenderThreshold
就能实现,比如下面的例子:

[配置文件]
### set log levels ###
log4j.rootLogger
= debug , stdout , D ,
E

### 输出到控制台 ###
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target
=
System.out
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
= %d{ABSOLUTE} %5p %c{ 1
}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
=
logs/log.log
log4j.appender.D.Append
=
true
log4j.appender.D.Threshold
=
DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout
=
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ]
%m%n

### 保存异常信息到单独文件 ###
log4j.appender.D
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
=
logs/error.log ## 异常日志文件名
log4j.appender.D.Append
=
true
log4j.appender.D.Threshold
=
ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout
=
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
= %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
分享到:
评论

相关推荐

    日志监控改造说明

    改造后的日志文件`pmislog.log`的存储路径是在`log4j.properties`配置文件中设定的,位于`/home/ap/pmis/monitorlog/`。文件每天自动生成,且第二天会自动备份前一天的文件,备份文件名带上日期,保持历史数据的可...

    memcache 基本使用-已测试

    - `log4j-1.2.16.jar`和`slf4j-api-1.6.1.jar`、`slf4j-log4j12-1.6.1.jar`表明日志记录使用了SLF4J和Log4j,便于调试和监控。 4. **使用Memcached**: - 存储数据:使用`set`命令将键值对存储到Memcached,支持...

    xdoclet_appfuse打包

    8. "log4j简明使用文档.doc":Log4j是Java日志框架,这个文档提供了关于如何配置和使用Log4j的日志记录功能。 9. "appfuse.txt"和"5.txt":这两个可能是额外的文本文件,可能包含了开发者笔记、命令行脚本或其他...

    基于SpringBoot的家庭理财管理系统.zip

    7. **日志管理**:SpringBoot内置日志框架,可以轻松切换不同的日志实现,如Logback、Log4j等,便于追踪和分析系统运行中的问题。 8. **异常处理**:SpringBoot提供了全局异常处理机制,可以统一处理系统中出现的...

    rehat6.5中的资源包明细清单

    - **ant-apache-log4j-1.7.1-13.el6.x86_64.rpm** - **ant-apache-oro-1.7.1-13.el6.x86_64.rpm** - **ant-apache-regexp-1.7.1-13.el6.x86_64.rpm** - **ant-apache-resolver-1.7.1-13.el6.x86_64.rpm** - **...

    软融催收管理系统需求设计方案及功能说明.docx

    Redis 作为缓存框架,SLF4J 1.7 和 Log4j 作为日志管理系统。 系统功能模块包括: 1. 我的工作台:个人信息、个人信息维护、修改密码、登录密码维护、通知公告、我的通告、查看接收到的通告、通告管理、给其他用户...

    Java账单结算系统源码.zip

    4. **日志管理**:使用Log4j或Logback记录系统日志,便于问题排查。 六、测试与部署 1. **单元测试**:JUnit或Mockito进行代码单元测试,确保功能正确性。 2. **集成测试**:通过Spring Boot的Test Slice特性进行...

    基于SSM的药方管理系统

    10. **日志管理**:通过使用Log4j、Logback等日志框架,系统可以记录操作日志,帮助排查问题,提升系统的可维护性。 综上所述,这个基于SSM的药方管理系统融合了多个Java Web开发的关键技术,从用户界面到数据库...

    网络计费系统

    在SSH框架中,可以通过Spring的AOP和log4j等工具实现这两点。 10. **测试与部署**:系统开发完成后,需进行单元测试、集成测试和压力测试,确保所有功能的正确性和性能。部署时,要考虑负载均衡、数据备份、安全...

    dangdang和smartstruts2.rar

    log4j:日志工具,用于输出日志信息.主要在业务层和数据访问层使用 junit:单体测试工具,用于测试业务或者数据访问方法 -----------项目开发流程------------ UML模型图:IBM Rose,Microsoft Visio E-R模型图:...

Global site tag (gtag.js) - Google Analytics