`

Log4j示例

    博客分类:
  • JAVA
阅读更多

<!-- ========================== 自定义输出格式说明================================ -->
 <!-- %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)  -->
 <!-- ========================================================================== -->

配置文件可以是:.properties或者是.xml文件。具体怎么配置这里不做详细介绍,只是为了提供例子

第一种是.properties文件方法:

下面是初始化Log4j:

package org.cjj.config.properties;

import org.apache.log4j.PropertyConfigurator;

public class Log4jPropertiesConfig
...{

    
/** *//**
     * 
@param args
     
*/

    
private static Log4jPropertiesConfig    instance;

    
/** *//**
     * 读取配置文件
     
*/

    
private Log4jPropertiesConfig()
    
...{
        PropertyConfigurator.configure(Log4jPropertiesConfig.
class.getResource("log4j.properties"));
    }


    
/** *//**
     * 
@return 单例模式
     
*/

    
public static synchronized Log4jPropertiesConfig initia()
    
...{
        
if (instance == null)
        
...{
            
return new Log4jPropertiesConfig();
        }

        
return instance;
    }

}

下面是配置文件:

##日志级别,以及日志类型名称
#如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO将被屏蔽掉.
log4j.rootLogger=INFO, A1, A2

# A1 is set to be ConsoleAppender sending its output to System.out
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender


# A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apche.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# The conversion pattern consists of date in ISO8601 format, level,
# thread name, logger name truncated to its rightmost two components
# and left justified to 17 characters, location information consisting
# of file name (padded to 13 characters) and line number, nested
# diagnostic context, the and the application supplied message
## 输出格式
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n

# Appender A2 writes to the file "testlog".
#A2 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#日志文件的大小
log4j.appender.A2.MaxFileSize=1MB
# 保存5个备份文件
log4j.appender.A2.MaxBackupIndex=5
log4j.appender.A2.layout=org.apache.log4j.TTCCLayout
##设置File参数:日志输出文件名
log4j.appender.A2.File=testlog.log

# Truncate 'test' if it aleady exists.
log4j.appender.A2.Append=false

# Appender A2 uses the PatternLayout.
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %-5r %-5p [%t] %c{2} - %m%n

第二种是使用XML文件:

初始化Log4j:

package org.cjj.config.xml;

import org.apache.log4j.xml.DOMConfigurator;

public class Log4jXMLConfig
...{

    
/** *//**
     * 
@param args
     
*/

    
private static Log4jXMLConfig    instance;

    
private Log4jXMLConfig()
    
...{
        DOMConfigurator.configure(Log4jXMLConfig.
class.getResource("log4j.xml"));
    }


    
public static synchronized Log4jXMLConfig initia()
    
...{
        
if (instance == null)
        
...{
            
return new Log4jXMLConfig();
        }

        
return instance;
    }

}

下面是配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <!-- 输出到日志文件 -->
 <appender name="filelog"
  class="org.apache.log4j.RollingFileAppender">
  <!-- 设置File参数:日志输出文件名 -->
  <!-- D:/LOG/com.log -->
  <param name="File" value="out.log" />
  <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="Append" value="true" />
  <!-- 设置文件大小 -->
  <param name="MaxFileSize" value="100KB" />
  <!-- 设置文件大小 -->
  <param name="MaxBackupIndex" value="10" />
  <!-- 设置输出文件项目和格式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
  </layout>
 </appender>

 <!-- 输出到控制台中 -->
 <appender name="console" class="org.apache.log4j.ConsoleAppender">
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%-5p: %m%n" />
   <!-- "%-5p: [%t] [%c{3}.%M(%L)] | %m%n" -->
  </layout>
 </appender>

 <!-- 设置类名限制输出的通道 -->
 <category name="com.test1" additivity="false">
  <level value="ERROR" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

 <!-- 设置类名限制输出的通道 -->
 <category name="org.springframework" additivity="false">
  <level value="OFF" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

    <!-- 设置类名限制输出的通道 -->
 <category name="org.cjj" additivity="false">
  <level value="INFO" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

 <!-- 设置接收所有输出的通道 -->
 <root>
  <level value="INFO" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </root>

</log4j:configuration>

这个测试工程可以在下面下载:下载(还有个方案读取XML文件时不需要模式(schema)验证,也在这个测试工程里面)

分享到:
评论

相关推荐

    log4j示例项目

    这个“log4j示例项目”旨在帮助开发者理解和使用Log4j,通过该项目,我们可以深入学习Log4j的配置、使用方法以及其在实际开发中的应用。 **1. Log4j的组成部分** Log4j主要包括三个核心组件:Logger(日志器)、...

    java log4j 示例

    **Java Log4j 示例** Java Log4j 是一个广泛使用的日志记录框架,它为Java应用程序提供了灵活且高效的日志管理。Log4j 提供了丰富的功能,包括配置日志级别、输出格式、日志目的地等,使得开发者可以方便地进行调试...

    Java 日志工具 Log4j 示例源代码

    三、Log4j实战——TestLog4j示例 1. **导入依赖**:首先确保项目中已经引入了Log4j的库,如果是Maven项目,可以在pom.xml中添加以下依赖: ```xml &lt;groupId&gt;log4j &lt;artifactId&gt;log4j &lt;version&gt;1.2.17 ``` 2. *...

    log4j示例(附带对应jar包)

    **四、Log4j的扩展** 1. **MDC(Mapped Diagnostic Context)和NDC(Nested Diagnostic Context)**: 提供了线程相关的上下文信息,有助于追踪问题。 2. **自定义Appender和Layout**: 如果默认的Appender和Layout...

    log4j的配置示例

    **标题:“log4j的配置示例”** **描述:“简单的log4j测试工程”** 在Java开发中,日志管理是一项重要的任务,它有助于跟踪应用程序的运行状态、错误和调试信息。Log4j是Apache提供的一款开源日志组件,广泛应用...

    log4j使用手册和配置文件示例

    总结来说,这个压缩包提供了log4j的使用教程、配置示例、API文档、Java代码示例以及配置文件的解释,是一个全面学习和使用log4j的资源集合。通过深入研究这些文件,开发者可以掌握如何在自己的Java应用中有效地利用...

    SpringBoot框架配置log4j和log4j2的配置代码

    # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4...

    JavaEE slf4j转log4j的小示例

    本示例将详细介绍如何将SLF4J与Log4j结合使用,以实现更灵活的日志管理。 1. **SLF4J简介** SLF4J作为一个日志抽象层,它的主要目标是允许最终用户在部署时插入他们偏好的日志框架。SLF4J提供了API,而具体的日志...

    log4j-1.2.16.jar与slf4j-api-1.6.1.jar加个转换包和log4j.properties示例

    在这种情况下,转换包可能是指`slf4j-log4j12.jar`,这是一个桥接模块,使得SLF4J API能够调用Log4j的具体实现。通过这个适配器,开发者可以在使用SLF4J的API的同时,利用Log4j的强大功能。 **log4j.properties**:...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    **日志框架Log4j详解** Log4j是Apache组织提供的一款开源的日志记录框架,广泛应用于Java应用程序中。在给定的压缩包文件中,包含的是Log4j的1.2.17版本,这是一个相对较为老旧但仍然被许多项目使用的版本。此版本...

    log4j-1.2.15.jar

    《深入理解Log4j 1.2.15.jar:日志管理的基石》 在IT行业中,日志管理是一项至关重要的任务,它对于系统监控、故障排查以及性能优化起着不可忽视的作用。Log4j作为Java平台上的一个经典日志记录框架,因其强大的...

    Log4j将System.out搞到log4j中输出四

    在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...

    log4j jar包

    # log4j.properties 示例 log4j.rootLogger=INFO, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=/var/log/app.log log4j.appender.FILE.layout=org.apache.log4j....

    log4j实用配置扩展

    #### 四、log4j的核心组件 log4j的核心组件主要包括**Loggers(记录器)**、**Appenders(输出源)**和**Layouts(布局)**。 1. **Loggers (记录器)**:负责生成日志信息,并决定是否发送日志信息到Appenders。记录器...

    log4j按功能保存日志

    - `log4jTest`可能是包含测试代码或示例的目录,用于演示如何使用Log4j按功能保存日志。在这些代码中,你会看到如何创建Logger实例,以及如何根据配置文件将日志输出到对应的文件。 总结,Log4j提供了一种灵活的...

    Log4j2结合Slf4j配置使用

    Log4j2 结合 Slf4j 配置使用 Log4j2 是一个功能强大且广泛使用的日志记录工具,它提供了灵活的日志记录机制和高性能的日志记录能力。Slf4j 则是一个简单的日志记录门面,提供了统一的日志记录接口。今天,我们将...

    做Log4j需要我包及示例

    在"做Log4j需要我包及示例"的压缩包中,可能包含了Log4j的JAR文件和一个简单的示例代码。要使用Log4j,你需要在项目中引入log4j的库文件,通常是log4j-1.2.x.jar或者log4j-api和log4j-core的最新版本。如果你使用的...

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    本示例将详细介绍如何使用Log4j来控制指定类或包的日志级别。 首先,我们来理解日志级别的概念。日志级别通常包括TRACE、DEBUG、INFO、WARN、ERROR和FATAL,它们按严重程度递增排序。每个级别对应不同的信息,例如...

    新版本与旧版本log4j.jar包下载,附使用说明----.zip

    6. **apache-log4j-2.14.1-bin.zip**: 这可能是Log4j的完整二进制包,除了log4j.jar之外,还可能包含其他相关文件,如配置示例、文档、源码等。解压这个文件可以获取更多关于Log4j的资源,便于深入学习和调试。 综...

Global site tag (gtag.js) - Google Analytics