`
luckybat
  • 浏览: 32694 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

正确配置log4j

    博客分类:
  • Java
阅读更多

log4j有三个主要的组件,分别是:

  • Logger(记录器):负责按照设定的优先级过滤日志信息,然后转发到存放器
  • Appender(存放器):负责接收并处理记录器转发来的日志信息,通常的处理是输出到屏幕或者存储到磁盘文件
  • Layout(布局器):负责格式化日志信息

上述三者之间的关系:
一个Logger可以挂接多个Appender(日志信息同时转发到多个设备)
一个Appender指定一个Layout进行格式化操作

 

一、定义配置文件log4j.properties

  1. log4j.记录器名称=[ 级别 ] , 存放器名称1, 存放器名称2, …
    级别优先级由高到低依次是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
    log4j建议只使用四个级别,优先级从高到低分别是:ERROR、WARN、INFO、DEBUG
    只有优先级高于或等于设定级别的日志信息被转发
    log4j.rootLogger是所有记录器的父对象(原名rootCategory已废弃),可用于设定所有记录器的缺省优先级
    记录器可以继承,如:log4j.myLogger.childLogger=,file
    记录器按名字获得,第一次访问时自动创建(总是存在)
    如果约定每个类都只向其同名记录器输出日志,则在配置文件中可以针对每一个特定类进行日志配置
  2. log4j.appender.存放器名称=存放器类名
    目前,log4j实现的存放器类有以下几种:
        org.apache.log4j.ConsoleAppender(控制台)
        org.apache.log4j.FileAppender(文件)
        org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
        org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
        org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  3. log4j.appender.存放器名称.layout=布局器类名
    目前,log4j实现的布局器类有以下几种:
        org.apache.log4j.PatternLayout(log4j的标准布局器,可以灵活地指定布局模式)
        org.apache.log4j.HTMLLayout(以HTML表格形式布局)
        org.apache.log4j.SimpleLayout(包含级别和日志信息的简单字符串)
        org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
  4. 设定布局器选项(主要是设定转换格式)
        log4j.appender.存放器名称.layout.选项名=值

    通常采用log4j的标准布局器:
        log4j.appender.存放器名称.layout=org.apache.log4j.PatternLayout
        log4j.appender.存放器名称.layout.ConversionPattern=格式化参数

    log4j采用类似C语言中printf函数的格式化参数格式化日志信息,参数如下:
        %m 输出代码中指定的信息
        %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
        %r 输出自布局器构造到该时间点所经过的毫秒数
        %c 输出所属的类目,通常就是所在类的全名
        %t 输出产生该日志事件的线程名
        %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
        %d 输出该时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:08 十二月 03 12:04:52,531
        %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如:Testlog4.main(TestLog4.java:10)
        %F 输出文件名
        %L 输出行号

 

二、在代码中调用log4j

 

  1. 将log4j的jar包(log4j-1.2.15.jar)导入到工程中。
  2. 写配置文件log4j.properties,放在src目录下,系统运行时自动拷贝到bin目录下。
  
  import org.apache.log4j.Logger;
  ...
  private static final Logger log = Logger.getLogger(类名.class);
  ...
  log.debug( Object message );
  log.info( Object message );
  log.warn( Object message );
  log.error( Object message );

 

 

三、log4j.properties的例子


# Set root logger priority to INFO and its only appender to CONSOLE.
log4j.rootLogger=INFO, CONSOLE
log4j.rootLogger=INFO, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

 

 


四、常见故障

  • log4j:WARN Please initialize the log4j system properly.
    解决办法:
    【eclipse环境】将文件log4j.properties拷贝到src目录下,运行时会自动拷贝到bin目录下。之前可能需要Refresh。
分享到:
评论

相关推荐

    WebSphere V5 配置log4j

    总的来说,正确配置log4j对于WebSphere V5环境下的应用监控和问题排查至关重要。同时,结合iBATIS的SQL日志输出,可以帮助开发人员更有效地管理和维护其应用程序。在实际操作中,根据具体需求调整log4j的配置,可以...

    log4j实用配置扩展

    ### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。...对于任何涉及大量数据处理或复杂逻辑的应用程序而言,正确配置并使用log4j都是非常重要的。

    log4j使用基本配置

    Log4j 是一个广泛使用的Java日志记录框架,它提供了灵活的日志配置和多种日志输出格式,使得开发者能够方便地...正确配置 Log4j 不仅有助于调试和问题排查,还能帮助监控应用程序的运行状态,从而提高整体的软件质量。

    log4j配置文件和jar包

    总的来说,理解并正确配置Log4j对于任何Java开发者来说都是基本技能,这不仅可以提高代码的可维护性,也有助于优化应用的性能和资源使用。正确使用Log4j可以让你在遇到问题时迅速定位,从而提高开发效率。

    Log4j.properties配置详解

    Log4j 是一个广泛使用的...正确配置Log4j.properties文件能够帮助开发者更好地管理和监控应用程序的运行状态,通过调整日志级别和输出方式,可以在开发、测试和生产环境中获得合适的日志信息,从而提升问题排查效率。

    log4j开发jar包及log4j配置文件

    Log4j是一款广泛使用的日志...在实际项目中,确保正确配置Log4j是至关重要的,因为它可以帮助我们跟踪程序状态、定位错误,以及在必要时提供审计日志。对于大型分布式系统,良好的日志管理可以显著提高故障排查效率。

    log4j日志配置以及配置文件详解

    正确理解和使用`log4j.properties`文件,将使日志管理变得更加高效和便捷。同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。

    log4j.properties配置文件

    正确配置`log4j.properties`对于应用程序的日志管理和调试至关重要。 #### 二、日志级别 Log4j支持以下几种级别的日志输出:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。这些级别按照从高到低的顺序排列,其中OFF...

    java程序log4j配置

    Java程序log4j配置详解 log4j是一个流行的Java日志记录工具,提供了灵活的日志记录和管理功能。在Java程序中,log4j配置正确是非常重要的,本文将详细介绍log4...通过正确地配置log4j,可以实现高效的日志记录和管理。

    log4j.properties配置详解

    Log4J是一个广泛使用的Java日志框架,它的配置文件,如`log4j.properties`,是用来定义日志记录的行为和格式。...正确配置Log4J可以帮助开发者更好地理解和跟踪程序的运行状态,从而优化代码质量和用户体验。

    log4j日志文件乱码解决方法

    在IT行业中,日志记录是调试和监控应用程序的关键部分,而Log4j是Java平台广泛使用的日志框架。本文将详细讨论如何解决Log4j日志文件出现的乱码...在实际开发中,正确配置Log4j的字符编码是一项基础但至关重要的任务。

    Log4J_全能配置文件.pdf

    ### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    在Java Web开发中,Tomcat是一个广泛使用的...总之,通过正确配置Log4j,我们可以使Tomcat的日志管理更加高效,确保在不影响系统性能的情况下获取所需的信息。记得定期清理旧的日志文件,以防止硬盘空间被过度占用。

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    tomcat9 slf4j+log4j2 写日志.zip

    2. **配置Log4j2**:Tomcat 9允许你在`$CATALINA_BASE/conf`目录下创建`log4j2.xml`文件来定制日志配置。`tomcat9-log4j2.xml`应该包含了如下内容: ```xml [%t] %-5level %logger{36} - %msg%n"/> ...

    log4j使用jar包和log4j.properties配置文件

    本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...

    Log4j日志配置说明,Log4j日志配置说明

    这一步是将 Log4j 库集成到项目中的第一步,确保项目可以正确引用 Log4j 的类。 ##### 2. 创建初始化 Servlet 接下来,创建一个用于初始化 Log4j 的 Servlet。这个 Servlet 的作用是在应用启动时读取配置文件并...

    log4j简单配置

    例如,在Spring框架的应用中,如果没有正确配置log4j,就可能出现“log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext)”这类警告信息。...

Global site tag (gtag.js) - Google Analytics