java log日志实例_commons-logging+log4j 简单的完整的日志操作实例 | 学步园

今天研究了一下午 commons-logging+log4 日志工具,终于有了很大的眉目、下面我把整个简单的实例 帖出来、为以后参考。

准备工作:将commons-logging 和 log4j  的 jar 包拷进 CLASSPATH(lib)目录下。

其中 com.landstech.logging包下写有 loggingTest.java 文件

1.loggingTest.java 文件

package com.landstech.logging;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.apache.log4j.PropertyConfigurator;

public class loggingTest {

Log log = LogFactory.getLog(loggingTest.class);

/*

*  如果不使用默认的 log4j.properties 也可以使用PropertyConfigurator 指定配置文件路径

*/

//PropertyConfigurator.

public void loading(){

/*

*   1. trace

*   2. debug

*   3. info

*   4. warn

*   5. error

*   6. fatal

*/

String Str = null;

try{

int InLength = Str.length();

System.out.println("Test End!");

}catch( Exception e){

log.debug("debug 信息 ");

log.error("error 信息 ");

log.info("info 信息 ");

log.fatal("fatal 信息 ");

}

}

}

2.commonsLoggingTest.jsp 文件

pageEncoding="UTF-8"%>

loggingTest logIns = new loggingTest();

logIns.loading();

%>

3. commons-logging.properties  文件指定Log4JLogger 日志工具

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

4.log4j.properties 文件

#rootLogger  根记录器

log4j.rootLogger=ERROR,console,f1

#Logger

#log4j.logger.com.landstech.logging.loggingTest=DEBUG

#category 类别配置

#log4j.category.com.landstech.logging=DEBUG

#Appenders

#console  控制台输出

log4j.appender.console=org.apache.log4j.ConsoleAppender

#file 文件输出

#[FileAppender:普通文件输出 | RollingFileAppender:输出到按大小滚动文件 | DailyRollingFileAppender:输出到按日期滚动文件]

log4j.appender.f1=org.apache.log4j.RollingFileAppender

#log4j.appender.f1=org.apache.log4j.FileAppender

#log4j.appender.f1=org.apache.log4j.DailyRollingFileAppender

# must :\\     if is :\  is false

log4j.appender.f1.File=H:\\loggingTest.log

#log4j.appender.f1.File=H:\\log.html      # 使用HTMLLayout时

log4j.appender.f1.Append=true

log4j.appender.f1.Encoding=UTF-8

log4j.appender.f1.MaxFileSize=200KB

#Layout

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

log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%C]-[%p] %m%n

#PatternLayout 表达式布局

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

log4j.appender.f1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%C]-[%p] %m%n

#HTMLLayout  HTML布局

#log4j.appender.f1.layout=org.apache.log4j.HTMLLayout

#其他:  XMLLayout  XML布局

#log4j.appender.f1.layout=org.apache.log4j.xml.XMLLayout

访问jsp文件在控制台上打印出:

2012-08-09 01:12:19 [com.landstech.logging.loggingTest]-[ERROR] error 信息

2012-08-09 01:12:19 [com.landstech.logging.loggingTest]-[FATAL] fatal 信息

同时在H盘目录下有生成 loggingTest.log 日志文件

文件内容与控制台上打印的内容一致

============================================新增加的:继续昨天遗漏的地方=================================

我们也可以定义记录器的名字

如在log4j.properties 中

#define a logger named ImportEBOMLogger

log4j.logger.ImportEBOMLogger=ERROR,file1

..............

.............

这洋的好处就是 在实例一个logger 对象时 可以直接根据记录器的名字来确定选用哪个记录器

如: 在jsp代码中就可以这洋:

Logger log = Logger.getLogger("ImportEBOMLogger");

PropertyConfigurator.configure("log4j.properties");

log.error("Can only choose Excel files! Please choose again");

%>

--------------------------

Logger组件的继承性

Log4J提供了一个root Logger,它是所有Logger组件的“祖先”,它永远存在,且不能通过名字检索或引用,通过Logger.getRootLogger()方法取得它。配置root Logger代码:

log4j.rootLogger=INFO,console

可在配置文件中方便地配置存在继承关系的Logger组件,凡是在符号“.”后面的组件都会成为在符号“.”前面的Logger组件的子类。例如:

log4j.apache.myLogger=WARN

log4j.apache.myLogger.mySonLogger=,file

以上代码中, mySonLogger是myLogger的子类Logger组件。Logger组件的继承关系:

. 如果子类Logger组件没有定义日志级别,则将继承父类的日志级别;

. 如果子类Logger组件定义了日志级别,就不会继承父类的日志级别;

. 默认情况下,子类Logger组件会继承父类所有的Appender,把它们加入到自己的Appener;

. 如果把子类Logger组件的additivity标志设为false,那么它就不会继承父类Appender。additivity标志 默认值为false;

Layout组件的补充:

Layout组件决定日志输出格式,有以下几种类型:

. org.apache.log4j.HTMLLayout(以HTML表格形式布局);

. org.apache.log4j.PatternLayout(可以灵活地指定布局模式);

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

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

org.apache.log4j.xml.XMLLayout(以xml格式布局)

Appender组件补充:

Appender组件决定将日志信息输出到什么地方。支持以下目的地:

. 控制台(Console);

. 文件(File);

. GUI组件(GUI component);

. 套接口服务器(Remote socket server);

. NT的事件记录器(NT Event Logger);

. UNIX Syslog守护进程(Remote UNIX Syslog daemon);

一个Logger可同时对应多个Appender,示例:myLogger配置二个Appender: 一个file, 一个是console:

log4j.logger.myAppender=WARN,file,console

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=log.txt

log4j.apender.console=org.apache.log4j.ConsoleAppender

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值