`

log4j的应用

 
阅读更多
Log4j的应用实例

Log4j的应用实例
在Log4J使用笔记中没有怎么写实例,那么在这篇中我将Log4j的一个完整应用实例写出。
在Log4J使用笔记中我们已经知道同一个日志信息可以同时输出到多个输出目的地。那么在下面的例子中我将演示将日志信息同时输出到控制台,文件和数据库中。首先创建一张表,如下:

create table log4j
(
    logId int not null auto_increment,--流水号
    createDate varchar(45) default null,--日志生成时间
    thread varchar(45) default null,--当前线程
    level varchar(45) default null,--当前日志的级别
    class varchar(45) default null,--生成日志的类
    message varchar(245) default null,--日志具体信息
   
    primary key(logId)
)
编写配置文件myLog4j.properties
#定义3个输出端
log4j.rootCategory=INFO,A1,A2,A3

#定义A1输出到控制器
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#定义A1的布局模式为PaternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n

#定义A2输出到文件
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#定义A2输出到哪个文件
log4j.appender.A2.File=./Sample.log
#定义A2输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#定义A2的布局模式为PatternLayout
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#定义A2的输出模式
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n

#定义A3输出到数据库
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://localhost:3306/study
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=root
#定义A3的布局和执行的SQL语句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')

--转载http://www.cnblogs.com/orochihuang/archive/2012/05/25/2518432.html

最后测试程序如下:
    public static void sample()
    {
        Logger logger = Logger.getLogger(Log4jTest.class);
       
        PropertyConfigurator.configure("myLog4j.properties");
        logger.debug("Here is DEBUG messgae");
        logger.info("Here is INFO message");
        logger.warn("Here is WARN message");
        logger.error("Here is ERROR message");
        logger.fatal("Here is FATAL message");
    }
这样当我们运行该程序的时候会同时将上述日志信息转入到三个地方:
INFO[main](Log4jTest.java:18)-This is a INFO message
WARN[main](Log4jTest.java:19)-This is a WARN message
ERROR[main](Log4jTest.java:20)-This is a ERROR message
FATAL[main](Log4jTest.java:21)-This is a FATAL message

log4j输出格式控制
参数 说明 例子
%c
列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间
log4j配置文件参数举例
输出显示媒介
假设当前logger名字空间是"a.b.c"
%c a.b.c
%c{2} b.c
%20c (若名字空间长度小于20,则左边用空格填充)
%-20c (若名字空间长度小于20,则右边用空格填充)
%.30c (若名字空间长度超过30,截去多余字符)
%20.30c (若名字空间长度小于20,则左边用空格填充;若名字空间长度超过30,截去多余字符)
%-20.30c (若名字空间长度小于20,则右边用空格填充;若名字空间长度超过30,截去多余字符)
%C
列出调用logger的类的全名(包含包路径) 假设当前类是"org.apache.xyz.SomeClass"
%C org.apache.xyz.SomeClass
%C{1} SomeClass
%d
显示日志记录时间,{<日期格式>}使用ISO8601定义的日期格式 %d{yyyy/MM/dd HH:mm:ss,SSS} 2005/10/12 22:23:30,117
%d{ABSOLUTE} 22:23:30,117
%d{DATE} 12 Oct 2005 22:23:30,117
%d{ISO8601} 2005-10-12 22:23:30,117
%F
显示调用logger的源文件名 %F MyClass.java
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 %l MyClass.main(MyClass.java:129)
%L
显示调用logger的代码行 %L 129
%m
显示输出消息 %m This is a message for debug.
%M
显示调用logger的方法名 %M main
%n
当前平台下的换行符 %n Windows平台下表示rn
UNIX平台下表示n
%p
显示该条日志的优先级 %p INFO
%r
显示从程序启动时到记录该条日志时已经经过的毫秒数 %r 1215
%t
输出产生该日志事件的线程名 %t MyClass
%x
按NDC(Nested Diagnostic Context,线程堆栈)顺序输出日志 假设某程序调用顺序是MyApp调用com.foo.Bar
%c %x - %m%n MyApp - Call com.foo.Bar.
com.foo.Bar - Log in Bar
MyApp - Return to MyApp.
%X
按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。 %X{5} (记录代号为5的客户端的日志)
%%
显示一个百分号 %% %

--转载http://www.cnblogs.com/focusj/archive/2012/01/16/2323441.html
分享到:
评论

相关推荐

    log4j应用的一个例子

    log4j应用的一个例子

    log4j应用实例

    log4j应用实例

    log4j和log4j2日志应用文档.docx

    这是log4j和log4j2日志应用相关的文档。包括了日志使用和要点相关内容介绍。

    Log4J应用技术.PPT

    在ServletContext 接口中声明了两个log方法 log( java.lang.String ) log(java.lang.Throwable, java.lang.String )。 问题 由于ServletContext 是一个简单的接口,并且也没有规定怎样实现它声明的方法。 因而 ...

    linux基于Log4j应用部署日志级别调整.doc

    基于Apache开源项目Log4j的Web应用,Linux部署控制台日志级别调整。可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式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....

    log4j应用

    一个小小的例子,jbuilder写的

    JavaLog4j应用

    主要讲述JAva打印的引用,主要是JAVALog4应用和配置。。。

    log4j相关jar

    log4j相关支持的jar Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条...

    Log4j端口Log4Cocoa.zip

    Log4Cocoa 是一个 iOS 和 Mac OS X 的 Log4j 端口。 标签:Log4Cocoa

    log4j实用配置扩展

    主要讲述log4j的简介,以及log4j的配置和在实际应用的使用。如果您不知道如何配置log4j,那么这本书将对您有很大的帮助。

    官网原版log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    java log4j 应用

    log4j 真的很强大,自己不才,参考了高人们的代码,自己也写了一个,希望能为用的上的兄弟姐妹们尽绵薄之力

    The Complete Log4j Manual

    log4j完整手册,随用随查最需要,本书讲述了log4j配置,应用,二次开发等,非常全面且有效.

    log4J-1.2.17.zip

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的...

    org.apache.log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j的基础知识

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-...而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中

    log4j与log4j.properties的配置.doc

    log4j 常见配置属性 包含xml及properties两种形式。java代码如何使用log4j

    log4j百度应用文件说明

    log4j的说明,帮助大家快速找到错误,并修改

    slf4j-log4j-1.6.1应用jar的包集合

    slf4j-log4j-1.6.1应用jar的包集合

Global site tag (gtag.js) - Google Analytics