Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。
日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
写配置文件
#配置文件settingfilename.ini
log4j.rootLogger=INFO, A1, A2
#setting for appender A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#setting for appender A2
log4j.appender. A2=org.apache.log4j.RollingFileAppender
log4j.appender. A2.File=example.log
log4j.appender. A2.MaxFileSize=100KB
log4j.appender. A2.MaxBackupIndex=1
log4j.appender. A2.layout=org.apache.log4j.PatternLayout
log4j.appender. A2.layout.ConversionPattern=%p %t %c - %m%n
注意:其中的log4j.appender必须都为小写
注释:
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。指定输出只显示比该级别以上的信息,所有比该级别低的信息都不会被显示。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4.当layout为PatternLayout时,ConversionPattern的格式有下面选项:
%r: 自程序开始后消耗的毫秒数
%t: 表示日志记录请求生成的线程
%p: 表示日志语句的优先级
%r: 与日志请求相关的类别名称
%c: 信息所在的类名
%m%n: 表示消息的内容
5.配置文件同样适用于服务器端和客户端。
代码中的使用
1. import中加入以下几行:
import org.apache.log4j.PropertyConfigurator ;
import org.apache.log4j.Logger ;
import org.apache.log4j.Level ;
2. 定义Logger变量
static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ;
3. 读配置文件
PropertyConfigurator.configure (String settingfilename) ;
4. 显示日志信息
按显示级别显示日志信息
logger.debug(String log_info);
用于显示调试信息
logger.info (String log_info);
用于显示系统提示信息
logger.warn(String log_info);
用于显示警告或特殊提示
logger.error(String log_info);
用于显示错误信息,一般在异常中使用。例如:
catch(IOException e) {
logger.error("IOException!");
System.exit(0);
}
以上只是很简单的log4j包的一般使用,如果在使用中遇到问题,请查看包的API得到更详细的信息!
分享到:
相关推荐
在《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括《开发者突击:Java Web主流框架整合开发(J2EE+...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
在本书架构讲解的过程中,穿插介绍了JDBC、Log4j、Sitemesh、JUnit技术。 随书附赠光盘内容包括本书10种架构原型程序包、个人通讯录及办公自动化系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java Web开发的...
训课程分享给⼤家,希望对学习⼤数据技术的⼩伙伴能有所帮助 上图如果看的不是很清楚,我⾃⼰做了⼀个简单介绍,⽤通俗易懂的话语讲解给各位 ps:第⼀⾄第四阶段是我将java基础添加上,如果有java基础的伙伴,⾃动跳...