`
shijian2292
  • 浏览: 483 次
文章分类
社区版块
存档分类
最新评论

Log4j完全使用

阅读更多
Log4j完全使用

Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了,

log4j.rootLogger=DEBUG,CONSOLE,A1,im
log4j.addivity.org.apache=true



# 应用于控制台

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n


#应用于文件

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# Use this layout for LogFactor 5 analysis



# 应用于文件回滚

log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


#应用于socket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n


# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000



# 发送日志给邮件

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=web@www.wuset.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=web@www.wusetu.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n



# 用于数据库
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=SampleMessages.log4j
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout

#自定义Appender

log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender

log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = corlin@cybercorlin.net

log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

来源:http://yiqingju.blogdriver.com/yiqingju/379057.html

————————————————————————————————————

简单的Log4j使用只需要导入下面的包就可以了
// import log4j packages
import org.apache.log4j.Logger;

然后你需要在类的开头写上下面一句
private final static Logger log =
Logger.getLogger(ClassName.class);//注意这里写的是当前类的类名。
这样你就有了一个日志对象叫做 log,这个log有以下集中用法
log.info();//一般信息
log.debug();//调试信息
log.error();//错误信息
log.warn();//警告信息
log.fatal();//致命错误信息
上面列出的就是所谓log4j的输出级别,log4j建议只使用4个级别,它们从上到下分别为
ERROR、WARN、INFO、DEBUG,假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
知道了上面的内容还不够,要想很好的使用log4j你还需要配置log4j的环境。因为每个log都可以通过配置它的属性文件来达到控制日志输出的格式的目的,下面我给出一个在weblogic下使用log4j的配置过程,首先给出这个配置文件的完整信息。

#log4j.rootLogger=INFO,A1,R //这一句指定了日志输出的级别为info,A1和R分别代表日志输出到什么地方。
log4j.category.hybl_wshabcm=debug,A1,R //这一句指定了日志具体输出哪个包的信息,以及输出位置
log4j.appender.A1=org.apache.log4j.ConsoleAppender //这里指定了日志输出的第一个位置A1是控制台ConsoleAppender
/*
*其中,Log4j提供的appender有以下几种:
*org.apache.log4j.ConsoleAppender(控制台),
*org.apache.log4j.FileAppender(文件),
*org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
*org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
*org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
*
*/
log4j.appender.A1.layout=org.apache.log4j.PatternLayout //指定A1的布局模式

/*
*其中,Log4j提供的layout有以下几种:
×org.apache.log4j.HTMLLayout(以HTML表格形式布局),
*org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
*org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
*org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
*/
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n //指定日志的输出格式


log4j.appender.R=org.apache.log4j.RollingFileAppender //指定以文件的方式输出日志
log4j.appender.R.File=c:/sys.html //文件位置
log4j.appender.R.MaxFileSize=500KB //文件最大尺寸
log4j.appender.R.MaxBackupIndex=1 //备份数
log4j.appender.R.layout=org.apache.log4j.HTMLLayout //文件的格式为Html格式
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n


有了上面的这个文件我们还要在weblogic启动的时候通过一个类加载这个文件,可以使用下面的方式
1、加载配置文件的Servlet

package hybl_wshabcm.servelet;

import java.io.File;
import java.io.LineNumberReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Vector;
import java.sql.Driver;
import java.sql.DriverManager;

// import servlet packages
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;

// import log4j packages
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class SetupServlet extends HttpServlet{

public void init(ServletConfig config) throws ServletException{

super.init(config);

// first thing to do, is to set up the Driver that we might be using
// in case of JDBCAppender
try{
Driver d =
(Driver)(Class.forName(
"org.gjt.mm.mysql.Driver").newInstance());
DriverManager.registerDriver(d);
//加载JDBC驱动程序,当准备将日志记录到数据库的时候可以使用
}catch(Exception e){ System.err.println(e); }

// next load up the properties
//启动时从web.xml中获得配置文件的信息
String props = config.getInitParameter("props");

if(props == null || props.length() == 0 ||
!(new File(props)).isFile()){

System.err.println(
"ERROR: Cannot read the configuration file. " +
"Please check the path of the config init param in web.xml");
throw new ServletException();
}
}

public void destroy(){
super.destroy();
}
}

2、web.xml文件的部署
上面的这个Servlet在服务器启动的时候将一些初始化信息加载,那么如何在weblogic启动的时候将这个类也
加载呢?看一个例子

setup
hybl_wshabcm.servelet.SetupServlet//启动时装载的类

props
/WEB-INF/log4j.properties//部署文件的位置

2//这句很重要

好了,现在你可以象开头那样使用log4j来记录日志了

_____________________________________________________

Log4j基本使用方法

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

3.1.定义配置文件

其实您也可以完全不使用配置文件,而是在代码中配置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(包含日志产生的时间、线程、类别等等信息)

3.2.在代码中使用Log4j

下面将讲述在程序代码中怎样使用Log4j。

3.2.1.得到记录器

使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

public static Logger getLogger( String name),

通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:

static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;

3.2.2.读取配置文件

当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

3.2.3.插入记录信息(格式化日志信息)

当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:

Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
分享到:
评论

相关推荐

    Log4J完全使用手册

    ### Log4J完全使用手册 #### 一、Log4J简介与重要性 Log4J是一种广泛应用于Java应用程序中的日志记录工具。它为开发者提供了一种方便且强大的方式来控制程序的日志输出,这对于软件开发过程中的调试、错误追踪以及...

    log4j完全使用指南

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

    Log4J使用完全手册

    Log4J是一个广泛使用的日志记录框架,源自Apache开源组织,它允许开发者在应用程序中方便地管理和记录日志信息。Log4J的核心组件包括Logger、Appender和Layout,这三个部分协同工作,使得日志管理变得灵活且高效。 ...

    Log4J使用完全手

    Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手Log4J使用完全手

    Log4j完全手册WORD版

    《Log4j完全手册》是Java开发者不可或缺的...总的来说,《Log4j完全手册》是Java开发者理解和应用Log4j的权威指南,涵盖了Log4j的核心概念、配置、API使用以及最佳实践,对于优化日志管理和提升开发效率有着重要作用。

    log4j完全手册

    《Log4j完全手册》是一本详尽阐述Log4j日志框架的指南,它针对Java开发者,提供了全面的配置信息和深入的参数解析。Log4j是Apache软件基金会的一个项目,是Java平台上广泛使用的日志记录工具,因其灵活性、可配置性...

    log4j2.17.2

    对于使用Java和Log4j2的开发者和管理员来说,升级到log4j2.17.2是必须且紧迫的任务。为了确保无缝升级,需要按照以下步骤操作: 1. 下载log4j2.17.2的jar包,替换现有项目中的旧版本。 2. 更新配置文件,确保新的...

    log4j2_detect_gui.zip

    为了应对这一挑战,开发者们推出了Log4j2检测工具,如"Log4j2_detect_gui.zip",本文将详细介绍这款工具的使用及Log4j漏洞的相关知识。 首先,我们要明白Log4j2Detect是一款用于检测Log4j漏洞的图形化界面工具,由...

    logging-log4j2-log4j-2.15.1-rc1.zip

    2. **安全配置增强**:新增了`LOG4J2_DISABLE_JNDI`环境变量和`log4j2.disable.jndi`系统属性,当这些设置为true时,将完全禁用JNDI,进一步确保安全。 3. **漏洞影响的类修复**:针对漏洞利用的具体代码路径进行了...

    log4j使用完全指南

    Log4J 是一个广泛使用的日志记录框架,尤其在Java应用程序中。它是Apache软件基金会的Apache Commons Logging的一部分,提供了一套强大的工具来管理和记录应用程序的日志信息。本指南旨在为初学者提供一个全面的Log4...

    log4j使用总结

    在使用 Log4j 时,我们可以完全不使用配置文件,而是在代码中配置 Log4j 环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 properties 格式的文件。 ...

    apache-log4j-2.17.2-bin.tar

    Log4j 是 Apache 组织开发的一个广泛使用的Java日志框架,它允许开发者在应用程序中实现灵活的日志记录。此次发布的binaries版本包含了编译后的二进制文件,适用于那些不希望从源码编译但需要快速部署和更新Log4j的...

    Log4j api 下载

    - Logback:由SLF4J作者开发的日志框架,性能优于Log4j,但API不完全兼容。 总的来说,Log4j 提供了一套强大且可定制的日志解决方案,通过下载和正确配置,开发者可以在各种Java应用中充分利用其功能。利用提供的...

    log4j2必需jar包

    它提供了比其前任log4j 1.x更多的功能和性能改进,是现代Java应用程序中广泛使用的日志工具。在给定的压缩包文件"log4j2必需jar包"中,包含了两个关键的JAR文件:log4j-api-2.11.1.jar和log4j-core-2.11.1.jar。这两...

    log4j完全参考手册

    ### log4j完全参考手册知识点概述 #### 一、log4j概况介绍 **log4j**是一款由Apache Software Foundation开发的开源日志组件,它能够帮助开发者在应用程序中记录日志信息。作为一款功能强大的日志框架,log4j支持...

    log4j 相关资料

    #### 四、Log4j 的三大核心组件 - **Logger**: Logger 实体是 Log4j 中的核心组成部分之一,用于发出日志事件。Logger 可以根据其名称进行层次化组织,方便管理和控制日志记录。 - **Appender**: Appender 负责将 ...

    log4j-2.15.0-rc2.zip

    Log4j是一款广泛使用的Java日志框架,它提供了灵活且高效的日志记录功能。然而,由于其JNDI(Java Naming and Directory Interface)特性,当遇到特别构造的输入时,可能会触发远程代码执行。JNDI允许程序查找并使用...

    log4j使用完全手册.rar

    《log4j使用完全手册》是一份详细的指南,专为Java EE项目的日志记录提供解决方案。日志在软件开发中扮演着至关重要的角色,它帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。而Log4j作为Java平台上的一...

    0积分:完全相对路径的log4j配置

    本文通过一个具体的例子展示了如何在Java项目中使用Properties文件来配置Log4j,特别强调了完全相对路径的使用方法。这种配置方式简洁明了,适用于各种规模的应用程序。此外,文章还涉及了如何在Servlet环境中加载...

    log4j配置范例

    log4j配置范例,完全手写会遇到困难吗,这是个例子供大家参考

Global site tag (gtag.js) - Google Analytics