log4j日志管理重要知识点备忘录

ConversionPattern参数的格式含义

 

#格式名 含义

 

#%c 输出日志信息所属的类的全名

 

#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,

 

#   比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

 

#%F 输出日志信息所属的类的类名

 

#%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

 

#%m 输出代码中指定的信息,如log(message)中的message

 

#%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“

 

#%p 输出优先级,即DEBUGINFOWARNERRORFATAL。如果是调用debug()输出

 

#   的,则为DEBUG,依此类推

 

#%r 输出自应用启动到输出该日志信息所耗费的毫秒数

 

#%t 输出产生该日志事件的线程名

 

 

## LOGGERS ##

 

#这里只设置一个logger但是它有很多的appender

 

log4j.rootLogger=INFO,console,file,rollfile,dailyrollfile

 

 

 

## APPENDERS ##

 

# org.apache.log4j.ConsoleAppender 的写法

 

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

 

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

 

log4j.appender.console.layout.conversionPattern=%-40l [%c]:%p -%c- %m%n

 

 

 

# org.apache.log4j.FileAppender 的写法 append属性代表新的日志是否覆盖旧的

 

# 日志,一般来说当然不用去覆盖,设置为true

 

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.append=true

log4j.appender.file.file=d:\logger.txt

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

log4j.appender.file.layout.conversionPattern=%d{yyyy-MM-dd hh:mm:ss} %F [%c]:%p -%c- %m%n

 

 

# org.apache.log4j.RollingFileAppender 的写法  这个appender很实用,

 

# 有些日志文件使用过于频繁,会使文件变的很庞大,需要分割

 

# maxFileSize 可以写 KB MB GB 一般我们设置100MB就可以了

 

# maxBackupIndex 设置备份文件的数目,一般我们设置2个,加上在用的,也就是全部利用满

 

# 总是有3个日志文件,用的时候用1KB做个小实验就可以了

 

 

 

log4j.appender.rollfile=org.apache.log4j.RollingFileAppender

 

log4j.appender.rollfile.file=d:\rolllogger.txt

 

log4j.appender.rollfile.maxFileSize=1KB

 

log4j.appender.rollfile.maxBackupIndex=2

 

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

 

log4j.appender.rollfile.layout.conversionPattern=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n

 

 

 

# org.apache.log4j.DailyRollingFileAppender 的写法,这个是在上面的appender的基础上更改进了一步

 

#  yyyy-MM,按月生成,生成时间为每月最后一天午夜过后,例如test.txt在2005年7月31日午夜过后会被更名为 test.txt.2005-07,然后重新生成。

 

# yyyy-ww,按周生成,生成时间为每周六午夜过后,例如test.txt在2005年8月13日午夜过后会被更名为 test.txt.2005-33,33表示当年第33周。

 

#  yyyy-MM-dd,按天生成,生成时间为每天午夜过后,例如2005年8月16日午夜过后,test.txt会被更名为 test.txt.2005-08-16。

 

#  yyyy-MM-dd-a,也是按天生成,但每天会生成两次,中午12:00过后一次,午夜过后一次,例如test.txt在2005年8月16 12:00过后会被更名为test.txt.2005-8-16-上午,午夜过后会被更名为test.txt.2005-8-16-下午。

 

#  yyyy-MM-dd-HH,按小时生成,例如test.txt在2005年8月16日12:00过后会被更名为 test.txt.2005-8-16-11。

 

#  yyyy-MM-dd-HH-mm,按分钟生成,例如test.txt在2005年8月16日12:00过后会被更名为 test.txt.2005-8-16-11-59。

 

 

 

log4j.appender.dailyrollfile=org.apache.log4j.DailyRollingFileAppender

 

log4j.appender.dailyrollfile.file=d:\dailyrolllogger.txt

 

log4j.appender.dailyrollfile.datePattern=yyyy-MM-dd-HH-mm

 

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

 

log4j.appender.dailyrollfile.layout.conversionPattern=%d{yyyy-MM-dd hh:mm:ss} [%c]:%p -%c- %m%n

 

 

 

 

log4j.logger.org.apache.struts2=DEBUG

log4j.logger.org.springframework=INFO

 

 

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;

 

 

public class Log4jServlet extends HttpServlet {

 

 

 

    private static final long serialVersionUID = -5101132572746345807L;

 

    

 

    // Initialize global variables

 

 

 

    public void init() throws ServletException {

 

        String prefix = this.getServletContext().getRealPath("/");

 

        String file = this.getInitParameter("log4j");

 

        System.out.println("载入log4j配置文件" + prefix + file);

 

 

 

        if (file != null) {

 

            PropertyConfigurator.configure(prefix + file);

 

        }

 

    }

 

 

 

    // Clean up resources

 

 

 

    public void destroy() {

 

    }

 

}

 

 

 

    <servlet>

 

        <servlet-name>log4j</servlet-name>

 

        <servlet-class>

 

            hdu.management.library528.log4j.Log4jServlet

 

        </servlet-class>

 

        <init-param>

 

            <param-name>log4j</param-name>

 

            <param-value>WEB-INFclasseslog4j.properties</param-value>

 

        </init-param>

 

        <load-on-startup>1</load-on-startup>

 

    </servlet>

 

 

 

 

import org.apache.log4j.Logger;

 

 

 

import com.opensymphony.xwork2.ActionSupport;

 

 

 

 

 

public class CommonAction extends ActionSupport {

 

 

 

 

 

    private static final long serialVersionUID = -8805271658849961866L;

 

 

 

    private static final Logger log = Logger.getLogger(CommonAction.class);

 

    

 

 

 

    public String execute(){

 

        log.debug("这里是日志");

 

        return "success";    

 

    }

 

 

 

}

 

自己总结了log4j的常用方法,直接可以使用,其他还有以socket、telnet、邮件等形式,用到了再查其他资料好了

 

源文档 <http://www.diybl.com/course/3_program/java/javajs/20071022/79433.html>

你可能感兴趣的:(apache,log4j,servlet,配置管理,C#)