`
zhuchengzzcc
  • 浏览: 442913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Log4j使用指南(转)

    博客分类:
  • java
阅读更多

    1         概述

本文档是针对Log4j日志工具的使用指南。包括:日志介绍、日志工具介绍、Log4j基本使用、Log4j的高级使用、Springlog4j的集成等。并进行了举例说明。

本文档适合所有Java开发人员。

2         日志介绍

存储软件程序、服务或操作系统产生的消息记录的文件。

电脑里的日志是指日志数据可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。要保护和提高你的网络安全,由各种操作系统、应用程序、设备和安全产品的日志数据能够帮助你提前发现和避开灾难,并且找到安全事件的根本原因。

当然,日志数据对于实现网络安全的价值有多大取决于两个因素:第一,你的系统和设备必须进行合适的设置以便记录你需要的数据。第二,你必须有合适的工具、培训和可用的资源来分析收集到的数据。

3         工具介绍

日志工具支持级别配置、输出格式配置、输出源配置等功能。工具包括:logger4jCommons LoggingSimple Log MonoLog

3.1         logger4j

Log4jApache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

log4j的好处在于:

1)   通过修改配置文件,就可以决定log信息的目的地——控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等

2)   通过修改配置文件,可以定义每一条日志信息的级别,从而控制是否输出。在系统开发阶段可以打印详细的log信息以跟踪系统运行情况,而在系统稳定后可以关闭log输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(System.out.println(......))

3)   使用log4j,需要整个系统有一个统一的log机制,有利于系统的规划。

此外,通过Log4j其他语言接口,您可以在CC++.NetPL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EEJINI甚至是SNMP应用中。

3.2         Commons Logging

Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,进行了简单的包装,此接口更接近于Log4JLogKit的实现.

3.3         Simple Log

Simple Log是一个logging anti-framework.Simple Log是一个让日记操作变得简单但很小的类库并且几乎不需要你做任何操作就可以得到日记的输出.它与其它日记框架相比最大的特点是使用简单,特别是在条件配置方面.它并不打算在一个包中解决所有日记问题,但它提供足够的功能来满足大多数应用程序所需的日记操作.

3.4         MonoLog

Monolog是一个用于监视和日志操作的API,国际化支持.

4         Log4j基本配置

Log4j由三个重要的组件构成:LoggersAppendersLayouts,分别表示:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。支持key=value格式设置或xml格式设置。

l         日志信息的优先级从高到低有FATALERRORWARNINFODEBUG,分别用来指定这条日志信息的重要程度;

l         日志信息的输出目的地指定了日志将打印到控制台还是文件中;

l         而输出格式则控制了日志信息的显示内容。

4.1         日志信息的优先级

Log4j划分为OFFFATALERRORWARNINFODEBUGALL或者您定义的级别。 Log4j建议只使用四个级别,优先级从高到低分别是ERRORWARNINFODEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

假如在一个级别为qLogger中发生一个级别为p的日志请求,如果p>=q,那么请求将被启用。这是Log4j的核心原则。 比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

4.2         输出源的使用

有选择的能用或者禁用日志请求仅仅是Log4j的一部分功能。Log4j允许日志请求被输出到多个输出源。用Log4j的话说,一个输出源被称做一个Appender Appender包括console(控制台), files(文件), GUI components(图形的组件), remote socket serverssocket 服务), JMSjava信息服务), NT Event LoggersNT的事件日志), and remote UNIX Syslog daemons(远程UNIX的后台日志服务)。它也可以做到异步记录。

一个logger可以设置超过一个的appender addAppender 方法添加一个appender到一个给定的logger。对于一个给定的logger它每个生效的日志请求都被转发到该logger所有的appender上和该logger的父辈loggerappender上。

4.2.1         ConsoleAppender

如果使用ConsoleAppender,那么log信息将写到Console。效果等同于直接把信息打印到System.out上了。

4.2.2        FileAppender

使用FileAppender,那么log信息将写到指定的文件中。这应该是比较经常使用到的情况。相应地,在配置文件中应该指定log输出的文件名。如下配置指定了log文件名为dglog.txt
log4j.appender.A2.File=dglog.txt

注意将A2替换为具体配置中Appender的别名。

4.2.3        DailyRollingAppender

使用FileAppender可以将log信息输出到文件中,但是如果文件太大了读起来就不方便了。这时就可以使用DailyRollingAppenderDailyRollingAppender可以把Log信息输出到按照日期来区分的文件中。配置文件就会每天产生一个log文件,每个log文件只记录当天的log信息:

log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender

log4j.appender.A2.file=dglog

log4j.appender.A2.DatePattern='.'yyyy-MM-dd

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern= %5r %-5p %c{2} - %m%n

4.2.4        RollingFileAppender

文件大小到达指定尺寸的时候产生一个新的文件。
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File= ../logs/dglog.log
# Control the maximum log file size
log4j.appender.R.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
这个配置文件指定了输出源R,是一个轮转日志文件。最大的文件是100KB,当一个日志文件达到最大尺寸时,Log4J会自动把example.log重命名为dglog.log.1,然后重建一个新的dglog.log文件,依次轮转。

4.2.5        WriterAppender

将日志信息以流格式发送到任意指定的地方。

4.3         Layout的配置

Layout指定了log信息输出的样式。

4.3.1        布局样式

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout
(可以灵活地指定布局模式),

org.apache.log4j.SimpleLayout
(包含日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout
(包含日志产生的时间、线程、类别等等信息)

4.3.2         格式

%m 输出代码中指定的消息
%p
输出优先级,即DEBUGINFOWARNERROR
FATAL
%r
输出自应用启动到输出该log信息耗费的毫秒数

%c
输出所属的类目,通常就是所在类的全名

%t
输出产生该日志事件的线程名

%n
输出一个回车换行符,Windows平台为"rn"Unix平台为
"n"
%d
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:20021018 221028
921
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(Test Log4.java:10)

4.3.3        例子

例子1:显示日期和log信息
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %m%n
打印的信息是:

2002-11-12 11:49:42,866 SELECT * FROM Role WHERE 1=1 order by createDate desc

例子2:显示日期,log发生地方和log信息
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %l "#" %m%n
2002-11-12 11:51:46,313 cn.net.unet.weboa.system.dao.RoleDAO.select(RoleDAO.java:409) "#"
SELECT * FROM Role WHERE 1=1 order by createDate desc
  

例子3:显示log级别,时间,调用方法,log信息
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS}
method:%l%n%m%n
log
信息
:
[DEBUG] 2002-11-12 12:00:57,376
method:cn.net.unet.weboa.system.dao.RoleDAO.select(RoleDAO.java:409)
SELECT * FROM Role WHERE 1=1 order by createDate desc

4.4         Properties配置文件实例

log4j.rootLogger=DEBUG
#
DAOlog记录到DAOLog,allLog

log4j.logger.DAOLog=DEBUG,A2,A4
#
将逻辑层log记录到BusinessLog,allLog

log4j.logger.Businesslog=DEBUG,A3,A4

#A1--
打印到屏幕上

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p [%t] %37c %3x - %m%n

#A2--
打印到文件DAOLog--专门为DAO层服务

log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=DAOLog
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS}
method:%l%n%m%n

#A3--
打印到文件BusinessLog--专门记录逻辑处理层服务log信息

log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=BusinessLog
log4j.appender.A3.DatePattern='.'yyyy-MM-dd
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS}
method:%l%n%m%n

#A4--
打印到文件alllog--记录所有log信息

log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=alllog
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS}
method:%l%n%m%n

5         Log4j高级配置

5.1         配置记录日志的包路径

配置Log4j.logger.com.int97=debug, 只有包为com.int97中代码的debug信息被输出到指定的输出源。

5.2         支持日志级别继承功能

如果log4j.rootLogger=debug,其他logger默认级别为debug。可以通过配置log4j.additivity.XXX=ture/false来打开或关闭继承功能;若为 false,表示Logger appender 不继承它的父Logger 若为true,则继承,这样就兼有自身的设定和父Logger的设定。

5.3         为不同的 Appender 设置日志输出级别

通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是DEBUG级别,查找异常不是很方便。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

5.4         Xml格式配置文件实例

<?xml version="1.0" encoding="GB2312"?>

<!--LOG4J CONFIGURATION - XML style -->

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

      

<!-- STDOUT: Outputs log information to the standard output/console -->

       <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">

              <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d %-5p - [%C{1}] %m%n"/>

              </layout>

       </appender>

      

<appender name="myApp.file.log" class="org.apache.log4j.RollingFileAppender">

              <param name="File" value="${myApp.root}/WEB-INF/logs/myApp.log"/>

              <param name="Append" value="true"/>

              <param name="MaxBackupIndex" value="3"/>

              <param name="MaxFileSize" value="2MB" />

              <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

       </appender>

      

       <appender name="moduleA.log"   class="org.apache.log4j.RollingFileAppender">  

        <param name="Append" value="true"   />  

        <param name="File" value="${myApp.root}/WEB-INF/logs/moduleA.log"   />  

        <param name="MaxFileSize" value="2MB"/>  

        <param name="MaxBackupIndex" value="10"   />  

        <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

              <filter class="org.apache.log4j.varia.StringMatchFilter">

                     <param name="StringToMatch" value=" MODULE_A _TASK_" />

                     <param name="AcceptOnMatch" value="true" />

              </filter>

    </appender>

   

    <appender name="moduleB.log"   class="org.apache.log4j.RollingFileAppender">  

        <param name="Append" value="true"   />  

        <param name="File" value="${myApp.root}/WEB-INF/logs/moduleB.log"   />  

        <param name="MaxFileSize" value="2MB"/>  

        <param name="MaxBackupIndex" value="10"   />  

        <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

              <filter class="org.apache.log4j.varia.StringMatchFilter">

                     <param name="StringToMatch" value="MODULE_B_TASK_" />

                     <param name="AcceptOnMatch" value="true" />

              </filter>

    </appender>

   

    <logger name="com.levinsoft.myApp.task.FileTaskThread">

           <level value="DEBUG"/>

           <appender-ref ref="moduleA.log"/>

           <appender-ref ref="moduleB.log"/>

    </logger>

   

 

    <appender name="authorization.log.debug"   class="org.apache.log4j.RollingFileAppender">  

        <param name="Append" value="true"   />  

        <param name="File" value="${myApp.root}/WEB-INF/logs/authorization_debug.log"   />  

        <param name="MaxFileSize" value="2MB"/>  

        <param name="MaxBackupIndex" value="3"   />  

        <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

              <filter class="org.apache.log4j.varia.LevelRangeFilter">

                     <param name="LevelMin" value="debug" />

                     <param name="LevelMax" value="debug" />

                     <param name="AcceptOnMatch" value="true" />

              </filter>

             

    </appender>

   

    <appender name="authorization.log.error"   class="org.apache.log4j.RollingFileAppender">  

        <param name="Append" value="true"   />  

        <param name="File" value="${myApp.root}/WEB-INF/logs/authorization_error.log"   />  

        <param name="MaxFileSize" value="2MB"/>  

        <param name="MaxBackupIndex" value="3"   />  

        <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

      

               <filter class="org.apache.log4j.varia.LevelRangeFilter">

                     <param name="LevelMin" value="error" />

                     <param name="LevelMax" value="error" />

                     <param name="AcceptOnMatch" value="true" />

              </filter>

             

    </appender>

   

    <logger name="com.levinsoft.myApp.authorization">

           <level value="DEBUG"/>

           <appender-ref ref="authorization.log.debug"/>

           <appender-ref ref="authorization.log.error"/>

    </logger>

 

       <logger name="com.levinsoft.qframe.taglib.CollectionTag">

              <level value="WARN"/>

       </logger>

      

       <appender name="moduleC_error.log"   class="org.apache.log4j.RollingFileAppender">  

        <param name="Append" value="true"   />  

        <param name="File" value="${myApp.root}/WEB-INF/logs/moduleC_error.log"   />  

        <param name="MaxFileSize" value="2MB"/>  

        <param name="MaxBackupIndex" value="10"   />  

        <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

               <filter class="org.apache.log4j.varia.LevelRangeFilter">

                     <param name="LevelMin" value="error" />

                     <param name="LevelMax" value="error" />

                     <param name="AcceptOnMatch" value="true" />

              </filter>

    </appender>

 

    <logger name="com.levinsoft.myApp.search.ModuleC">

              <level value="ERROR"/>

              <appender-ref ref="moduleC_error.log"/>

       </logger>

 

       <logger name="com.levinsoft">

              <level value="DEBUG"/>

              <!-- <appender-ref ref="myApp.file.log"/> -->

       </logger>

 

       <root>

              <level value="WARN"/>

              <appender-ref ref="STDOUT"/>

              <appender-ref ref="myApp.file.log"/>

              <!-- activate to log in files -->

              <!--<appender-ref ref="DAILY"/>-->

              <!--<appender-ref ref="HTML"/>-->

       </root>

</log4j:configuration>

6         Springlog4j的支持

Log4jConfigurer Log4jConfigListenerLog4jConfigServletdom4j进行配置或封装。org.springframework.web.util 还包括了对其他工具类的封装。

6.1         log4j配置文件放置路径

web.xml文件中,可以指定log4j配置文件的放置位置。缺省情况下,系统在WEB-INF/classes目录下查找。也可以在web.xml文件中指定一个位置,例如:系统将自动的进行加载。

<context-param>

              <param-name>log4jConfigLocation</param-name>

              <param-value>/WEB-INF/classes/log4j.xml</param-value>

</context-param>

6.2         log4j文件中引用web.xml中的属性

在使用Spring的应用中,在web.xml可以配置spring指定的系统属性,log4j配置文件可以引用系统属性。

l         配置web.xml

       <context-param>

              <param-name>webAppRootKey</param-name>

              <param-value>usboss.root</param-value>

       </context-param>

l         配置log4j.xml

<appender name="myApp.file.log" class="org.apache.log4j.RollingFileAppender">

              <!-- ${myApp.root}变量仅适用于Spring的配置 -->

              <param name="File" value="${myapp.root}/WEB-INF/logs/myApp.log"/>

              <param name="Append" value="true"/>

              <param name="MaxBackupIndex" value="3"/>

              <param name="MaxFileSize" value="2MB" />

              <layout class="org.apache.log4j.PatternLayout">

                     <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>

              </layout>

       </appender>

7         resin中日志配置

resin.conf中,在<error-log id='logs/error.log'rollover-size='5MB'/>下面增加:<stdout-log id='logs/stdout.log' rollover-size='5MB'/>,就可以实现标准输出信息到stdout.log中。在log4j.xml中的配置是也可以达到相同的效果。

8         配置多种日志工具

通过配置commons-logging.properties文件,可以指定要使用的日志工具。参见:axis1源代码。

9         参考资料

1. Axis源代码

2. Spring源代码
 
分享到:
评论

相关推荐

    log4j2用户指南

    ### Log4j2 用户指南知识点概述 #### 1.1 欢迎使用 Log4j2! ##### 1.1.1 引言 几乎每一个大型应用都有自己的日志或跟踪 API。根据这一规则,E.U.SEMPER 项目决定在 1996 年初开发自己的追踪 API。经过无数次的...

    log4j使用完全指南

    本指南旨在为初学者提供一个全面的Log4J使用教程。 一、Log4J 组件介绍 1. Logger:Logger组件是Log4J的核心,它负责决定哪些日志信息应被记录,哪些应被忽略。Logger类提供了多种方法来记录不同级别的日志,如...

    log4j-API-最新稳定版本log4j-1.2.17

    这表明我们可以从这个文件中获取Log4j 1.2 API的详细使用指南和参考文档。 **Log4j API知识点** 1. **日志级别**:Log4j API支持多个日志级别,如DEBUG、INFO、WARN、ERROR和FATAL。这些级别允许开发者根据需要...

    log4j完全使用指南

    《log4j完全使用指南》是一份针对Java开发者的重要参考资料,它涵盖了log4j这个流行的日志记录框架的全面知识。log4j是Apache软件基金会的一个项目,它为Java应用程序提供了一个灵活且高效的日志系统,帮助开发者...

    logging-log4j2-log4j-2.16.0-rc1.zip

    Log4j作为Java平台广泛使用的日志框架,因其高效、灵活的特性而备受青睐。然而,任何软件都可能存在安全隐患,Log4j也不例外。这次我们关注的是"logging-log4j2-log4j-2.16.0-rc1.zip"这个压缩包,它包含了Log4j ...

    log4j所依赖jar包

    Log4j是一个广泛使用的Java日志框架,由Apache软件基金会开发。它为应用程序提供了一种灵活的日志记录机制,使得开发者能够控制日志信息的输出格式、级别以及目的地。在Java应用程序中,日志功能是必不可少的,因为...

    log4j包的使用说明及api帮助文档

    `3.log4j日志包的用法.docx`可能是一份关于如何在项目中使用log4j的指南,包括配置和代码示例。`log4j包的使用说明及api帮助文档`可能是更全面的教程,包含了更多实践指导和最佳实践。 总的来说,log4j为Java开发者...

    log4j使用指南与API参考,以CHM格式提供

    **Log4j使用指南与API参考** Log4j是一款广泛使用的Java日志框架,它为应用程序提供了灵活且可扩展的日志记录功能。本指南将帮助开发者深入理解和有效地使用Log4j,以实现高效的日志管理和分析。以下是Log4j的核心...

    Log4j-使用指南

    Log4j-使用指南

    Log4j使用指南.docx

    Log4j 是一款广泛使用的Java日志记录框架,它的主要目标是为应用程序提供灵活的日志输出控制,方便调试和监控。以下是对Log4j及其相关工具的详细解释: 1. **日志介绍**: 日志是记录软件运行时状态的重要手段,它...

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

    这个文件是一个帮助文档,包含了log4j 1.2版本的详细指南和API参考,对于理解log4j的使用和配置非常有帮助。 **Log4jTest.java** 这是一个Java源代码文件,很可能包含了一些使用log4j进行日志记录的示例代码,通过...

    (zt)Commons-logging + Log4j 入门指南

    Apache Commons Logging和Log4j是两个广泛使用的日志框架,本指南将深入讲解如何将它们结合使用,为你的Java应用程序提供强大的日志功能。 首先,让我们了解Apache Commons Logging。它是Apache软件基金会的一个...

    apache-log4j-2.14.0-bin.zip

    Apache Log4j 2.14.0 是一个广泛使用的日志记录库,尤其在Java应用程序中,它为开发者提供了灵活且高效的日志记录功能。这个版本是2021年的最新更新,意味着它包含了最新的特性、改进和安全修复。 Log4j 2是一个继...

    log4j使用手册和API chm格式

    用户可以通过这个文件了解Log4j 1.2的所有功能,包括类库的使用方法、配置指南、示例代码等。 - "Log4j手册.pdf":这份PDF文档可能是Log4j的手册或教程,可能包含更广泛的使用场景和最佳实践,也可能是对CHM文件的...

    log4j文档及使用

    而"log4j的使用.pdf"则是一份详细的使用指南,涵盖了Log4j的配置、API使用、性能优化等方面,是学习和掌握log4j的重要参考资料。 最后,"apache-log4j-1.2.15.zip"是Log4j的源码包,对于想要深入了解其内部实现机制...

    Apache Log4j 2代码漏洞处置指南及检测工具.zip

    Apache Log4j 2存在远程代码执行漏洞处置指南 及期检测工具

    Log4j配置指南

    Log4j是一款广泛使用的日志记录框架,尤其在Java应用程序中。它提供了强大的日志配置功能,能够帮助开发者实现灵活的日志输出、管理和分析。在本文中,我们将深入探讨Log4j配置的关键方面,以及如何有效地利用这个...

    Log4j入门指南入门教程

    ### Log4j入门指南知识点详解 #### 一、引言 在软件开发过程中,日志(Log)记录是一项不可或缺的功能。良好的日志管理不仅能帮助开发者快速定位问题所在,还能为后期的系统维护提供便利。本篇内容主要围绕Log4j进行...

    log4j配置详解与使用方法说明

    **日志框架Log4j详解与使用指南** 在软件开发中,日志记录扮演着至关重要的角色,它帮助开发者追踪程序运行状态、定位错误、优化性能。Log4j是Apache组织提供的一款开源日志框架,广泛应用于Java项目中。本文将深入...

    Strtus2.3升级2.5(包含log4j升级log4j2)所需jar,和相关资料

    5. **配置Log4j2**:Log4j2的配置文件(通常为log4j2.xml或log4j2.json)需要重新编写,以利用新特性并满足日志需求。例如,你可以配置日志分级(DEBUG, INFO, WARN, ERROR等),并实现日志分片以方便日志管理和分析...

Global site tag (gtag.js) - Google Analytics