`
ywChen
  • 浏览: 121136 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

log4应用

阅读更多

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

 

如此强大的优越性,实际上手并不难,尤其在spring框架下,使用log4j更是容易,下面介绍一下spring下的log4j应用。
当然先要下载相应的jar包(log4j.jar)
首先是web.xml的配置,在web.xml中加入如下配置

 

 

<context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>/WEB-INF/classes/log4j.properties</param-value>
   </context-param>
   <context-param>
      <param-name>log4jRefreshInterval</param-name>
      <param-value>6000</param-value>
   </context-param>
<listener>
      <listener-class>
        org.springframework.web.util.Log4jConfigListener
      </listener-class>
   </listener>

 


说明:在上文的配置里,在上文的配置里,Log4jConfigListener会去WEB-INF/props/log4j.propeties 读取配置文件;开一条watchdog线程每60秒扫描一下配置文件的变化(这样在web服务启动后再去修改配置文件也不用重新启动web服务了);并把web目录的路径压入一个叫webapp.root的系统变量(webapp.root将在log4j.properties文件中使用)。

接下来是log4j.properties配置文件了,把它放在WEB-INF/props下,具体配置如下:

 

 

#log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j.rootLogger = INFO, console, R
#level=INFO,all can be output
#console is set to be a ConsoleAppender
log4j.appender.console = org.apache.log4j.ConsoleAppender
#console have four patterns
#org.apache.log4j.HTMLLayout
#org.apache.log4j.PatternLayout
#org.apache.log4j.SimpleLayout
#org.apache.log4j.TTCCLayout
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#define the output type
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#file is set to output to a extra file
log4j.appender.R = org.apache.log4j.RollingFileAppender
#the absolute route of the log4j file
log4j.appender.R.File=${webName.root}/WEB-INF/logs/log.log  
#the size
log4j.appender.R.MaxFileSize = 500KB
#back up a file
log4j.appender.R.MaxBackupIndex = 1
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n
 

 

上面的配置文件说明log信息将以两种方式输出(文件和控制台),表示应用的根目录下(例如本应用名称为ABC,则log.txt的位置为tomact\webapp\ABC下)

最后在程序中想要输出log的地方加入log4j的支持

(1)引入   import org.apache.log4j.Logger

(2)声明一个logger

private static Logger logger = Logger.getLogger(ClassName.class);

(3)在程序中的相应位置加入输出信息

logger.info("用户登录:"+user.getAccount());

ok,完成了,当有登录时会在控制台和文件中同时输出log信息如下

2007-01-10 16:02:54 [com.my.web.UserAction]-[INFO] 用户登录:yangsq

附注(转):
以下是配置文件(log4j.properties)的一些重要的语法
定义配置文件

其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:

配置根Logger,其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

配置日志信息输出目的地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(将日志信息以流格式发送到任意指定的地方)

配置日志信息的格式(布局),其语法为:

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(包含日志产生的时间、线程、类别等等信息)

 

分享到:
评论

相关推荐

    Log4使用实例精髓部分

    Log4j是Apache组织开发的一款强大的日志记录工具,广泛应用于Java编程中。它提供了灵活的日志配置,可以根据不同环境和需求调整日志输出级别、格式以及存储方式,从而帮助开发者进行问题排查、性能监控和系统维护。...

    log4d Delphi中好用的轻量级日志类

    这个库的设计灵感来源于Java的log4j框架,旨在帮助程序员有效地跟踪和调试应用程序中的错误和异常,同时保持代码的简洁性。本文将深入探讨log4d的核心组件和主要特性。 1. **组件介绍** - `Log4D.pas`:这是log4d...

    java中log4应用

    本文将深入探讨Log4j的基础应用,包括配置、日志级别、布局模式和实际使用场景。 首先,我们来看一下如何在Java项目中引入Log4j。通常,我们需要在项目的类路径下放置Log4j的JAR文件,或者将其添加到构建工具(如...

    LOG4.net日志控件使用示例项目

    LOG4.net是一个强大的日志记录框架,源自Java世界的log4j,被广泛应用于.NET平台的软件开发中。它提供了一套灵活的日志记录方案,帮助开发者在应用程序中方便地记录调试信息、错误信息以及其他关键性日志数据。本...

    Java log4 使用

    ### Java Log4j 使用详解 #### 一、Log4j 的基本概念与作用 Log4j 是 Apache 的一个开源项目,被广泛应用于 Java 应用程序中的日志记录功能。它提供了一个简单灵活的日志记录机制,使得开发者能够轻松地记录程序...

    log4z的使用

    使用`log4z`的第一步是初始化。在程序启动时调用`log4z_init`函数,指定配置文件路径。配置文件可以设定日志级别、输出目的地、时间格式等参数。 ```cpp #include "log4z.h" int main() { log4z_init("log4z.conf...

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

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

    Log4net详细说明使用

    使用Log4net可以方便地监控和调试应用程序,有助于提升软件的可维护性和稳定性。 在Visual Studio 2008中使用Log4net,首先要引入log4net.dll的引用。这可以通过在项目中添加外部引用来完成,确保引用的是1.2.10.0...

    老生常谈Log4j和Log4j2的区别(推荐)

    然后使用Logger.getLogger()方法获取日志记录器,而Log4j2需要import org.apache.logging.log4j.Level、org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger,使用LogManager.getLogger()方法...

    log4j使用教程(详解)

    **日志框架Log4j详解** 在Java编程中,日志记录是不可...理解和熟练使用Log4j,对于提升Java应用的调试和维护效率有着重要作用。在实际项目中,根据需求选择合适的配置和使用方式,可以使日志记录更加高效和有针对性。

    log4j和log4j2日志应用文档.docx

    本文档将详细介绍Log4j和Log4j2的日志应用,包括日志使用和要点相关内容介绍。 配置文件解析 Log4j配置文件的头部包括两个部分:xml声明和DTD声明。xml声明用于指定文档类型和编码方式,而DTD声明用于指定Log4j的...

    WinForm Log4Net 配置和使用实例

    本实例将详细介绍如何在WinForm应用中配置和使用Log4Net。 首先,我们要理解Log4Net的基本概念。Log4Net提供了一个可扩展的框架,通过定义不同的Appenders(输出目标),Layouts(输出格式)以及Filters(过滤规则...

    log4j简单使用

    标题"Log4j简单使用"表明我们即将探讨的是日志记录库Log4j的基础应用。Log4j是Apache软件基金会开发的一个开源项目,它为Java应用程序提供了一个灵活的日志系统,允许开发者自定义日志级别、输出格式以及存储位置等...

    Log4Cpp使用实例

    封装了一个使用类,从本地读取配置log级别等信息,可输出多个种类的日志文件,输出示例如下 [2017-02-20 16:09:51.910](NOTICE)Sys : 进入了CPfy_log4cppDlg::OnBnClickedButton1函数 [2017-02-20 16:09:51.911]...

    log4net应用

    在Winform和Web应用程序中,log4net的使用方法大体相似,但根据应用环境的不同,配置和实现细节会有所差异。 ### Winform应用中的log4net 在Winform应用中,log4net通常用于记录应用程序的运行日志,以便在出现...

    Log4j2简介及与Log4j效率对比

    9. **Layouts的广泛适用性**:Log4j2的Layouts不仅可以应用于使用`OutputStream`写入日志的Appender,还可以应用于所有类型的Appender。 10. **优化的并发支持**:Log4j2利用Java 5提供的并发特性,能够在较低级别...

    mfc使用log4cpp实例

    在提供的压缩包文件中,"MFC使用log4cpp"和"MFC╩╣╙├log4cpp"可能包含更具体的示例代码或者项目的实现,读者可以通过查看这些文件进一步了解如何在实际项目中整合和使用log4cpp。 总之,log4cpp为C++开发者提供...

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    logging-log4j2-log4j-2.15.0-rc2.zip maven 资源库

    如果是maven本地仓库使用,需要将zip包解压到maven资源库的/org/apache/logging/log4j下 log4j严重漏洞 log4j logging-log4j2-log4j-2.15.0-rc2 log4j-1.2-api-2.15.0.jar log4j-api-2.15.0.jar log4j-core-2.15.0....

    C#Winform 下使用log4net成功的例子

    log4net是一款广泛使用的日志框架,它提供了灵活的日志记录配置和多种输出方式。下面我们将详细探讨如何在C# Winform环境下成功集成并使用log4net。 首先,`App.config`文件是.NET应用程序的配置文件,用于存放log4...

Global site tag (gtag.js) - Google Analytics