日志管理--log4j

使用log4j需要先导入log4j的jar包,下载地址log4j官网。首先需要新建log4j.properties的配置文件,直接放在src目录下,或者新建一个与src并列的etc文件夹。用来存放配置文件。
配置log4j.properties

log4j.appender.xing=org.apache.log4j.ConsoleAppender
log4j.appender.xing.layout=org.apache.log4j.PatternLayout
log4j.appender.xing.layout.ConversionPattern=[%p](%d{yyyy-MM-dd HH:mm:ss,SSS})---%l--%m\r\n

log4j.rootLogger=INFO,xing
  1. log4j.appender.xing=org.apache.log4j.ConsoleAppender是配置日志文件的输出地方,这里是ConsoleAppender控制台。其中xing是appender的名字,可以自己命名。
    除此之外还有其他的输出目的地:
    log4j.appender.xing=org.apache.log4j.ConsoleAppende 控制台输出
    log4j.appender.xing=org.apache.log4j.FileAppender 文件输出
    org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件
  2. log4j.appender.xing.layout=org.apache.log4j.PatternLayout配置日志输出布局,一般为org.apache.log4j.PatternLayout可以灵活设置输出格式,其他还有
    HTMLLayout 格式化日志输出为HTML表格
    SimpleLayout 以一种非常简单的方式格式化日志输出
  3. log4j.appender.xing.layout.ConversionPattern=[%p](%d{yyyy-MM-dd HH:mm:ss,SSS})—%l–%m\r\n 指定输入格式,其中各个字符的意思为:
    %m 输出代码中指定的消息
    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    %r 输出自应用启动到输出该log信息耗费的毫秒数
    %c 输出所属的类目,通常就是所在类的全名
    %t 输出产生该日志事件的线程名
    %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd
    HH:mm:ss , SSS}
    %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
  4. log4j.rootLogger=INFO,xing,表示数据的级别和输出源。输出日志的级别有DEBUG、INFO、WARN、ERROR、FATAL五种,这五个级别的顺序是DEBUG、INFO、WARN、ERROR、FATAL依次增高。
    它的规则:如果定义的是info则输出比info级别高的,低的将被屏蔽到不输出。

使用logger

package com.xingguo.action;

import org.apache.log4j.Logger;

import com.xingguo.entity.User;
import com.xingguo.service.UserService;

public class UserAction extends BaseAction{

    private static final long serialVersionUID = 1L;
    private Logger log = Logger.getLogger(UserAction.class);

    public String loginForm(){
        log.debug("logger....debug");
        log.info("logger....info");
        log.warn("logger....warn");
        log.error("logger....error");
        log.fatal("logger....fatal");
        return SUCCESS;
    }   
}

输入结果如下:

[INFO](2015-07-20 14:48:03,823)---com.xingguo.action.UserAction.loginForm(UserAction.java:21)--logger....info
[WARN](2015-07-20 14:48:03,825)---com.xingguo.action.UserAction.loginForm(UserAction.java:22)--logger....warn
[ERROR](2015-07-20 14:48:03,825)---com.xingguo.action.UserAction.loginForm(UserAction.java:23)--logger....error
[FATAL](2015-07-20 14:48:03,826)---com.xingguo.action.UserAction.loginForm(UserAction.java:24)--logger....fatal

只输出了比info级别高的日志。

以文件的形式输出

log4j.appender.lout=org.apache.log4j.FileAppender
log4j.appender.lout.layout=org.apache.log4j.PatternLayout
log4j.appender.lout.layout.ConversionPattern=[%p](%d)---%l--%m\r\n
log4j.appender.lout.file=C:/logs/struts2.log

log4j.rootLogger=INFO,lout,xing

一般日志输出到一个文件中,时间长了会很大。所以一般采用一天生成一个文件。

log4j.appender.lout=org.apache.log4j.DailyRollingFileAppender
log4j.appender.lout.layout=org.apache.log4j.PatternLayout
log4j.appender.lout.layout.ConversionPattern=[%p](%d)---%l--%m\r\n
log4j.appender.lout.DatePattern='.'yyyy-MM-dd
log4j.appender.lout.Threshold=ERROR 
log4j.appender.lout.file=C:/logs/struts2.log

log4j.rootLogger=INFO,lout,xing

log4j.appender.lout.DatePattern=’.’yyyy-MM-dd为文件名的格式
log4j.appender.lout.Threshold=ERROR 级别超过error的写入文件,低级别的在控制台输出

你可能感兴趣的:(log4j,日志,Logger)