• Log4j 简单概念及示例.


    Loggers, Appenders and Layouts
    Log4j has three main components: loggers, appenders and layouts. These three 
    
    types of components work together to enable developers to log messages according 
    
    to message type and level, and to control at runtime how these messages are 
    
    formatted and where they are reported.
    
    This rule is at the heart of log4j. It assumes that levels are ordered. For the 
    
    standard levels, we have DEBUG < INFO < WARN < ERROR < FATAL.
    
    Appender:
     an output destination is called an appender.
    For example, if a console appender is added to the root logger, then all enabled 
    
    logging requests will at least print on the console.
    
    
    
    Here is a sample configuration file that results in identical output as the previous BasicConfigurator based example.
    
    ------------------------------------------------
    # Set root logger level to DEBUG and its only appender to A1.
    log4j.rootLogger=DEBUG, A1
    
    # A1 is set to be a ConsoleAppender.
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    
    # A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
     
    
    
    Suppose we are no longer interested in seeing the output of any component belonging to the com.foo package. The following configuration file shows one possible way of achieving this.
    
    
    log4j.rootLogger=DEBUG, A1
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    
    # Print the date in ISO 8601 format
    log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
    
    # Print only messages of level WARN or above in the package com.foo.
    log4j.logger.com.foo=WARN 
    
    -----------------------------
    
    log4j.rootLogger=debug, stdout, R
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=example.log
    
    log4j.appender.R.MaxFileSize=100KB
    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=1
    
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
     
    
    
    Calling the enhanced MyApp with the this configuration file will output the following on the console.
    
     INFO [main] (MyApp2.java:12) - Entering application.
    DEBUG [main] (Bar.java:8) - Doing it again!
     INFO [main] (MyApp2.java:15) - Exiting application.
    
    -----------------------------------------------
    
    
    #ERROR为等级,FILE为Appender
    log4j.rootLogger=ERROR,CONSOLE,FILE
    #定义一个新的logger,名称为admin,可通过Logger.getLogger("admin")获得,继承了rootLogger的配置
    log4j.logger.admin=WARN
    
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.conversionPattern=%p-[%d] -%M (%F\:%L) %m%n%n
    
    log4j.appender.FILE=org.apache.log4j.RollingFileAppender
    log4j.appender.FILE.File=c\:/risen_app.log
    log4j.appender.FILE.MaxFileSize=2000KB
    log4j.appender.FILE.MaxBackupIndex=1
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=%d %-5p %c - %m%n
    



    //MyApp.java
    
    package com.test.log4j;
    
    import org.apache.log4j.BasicConfigurator;
    import org.apache.log4j.Logger;
    
    public class MyApp {
    	// Define a static logger variable so that it references the
    	// Logger instance named "MyApp".
    	static Logger log=Logger.getLogger(MyApp.class);
    	//按名称取logger
    	//static Logger log=Logger.getLogger("admin");
    	public static void main(String[] args) {
    		 // Set up a simple configuration that logs on the console.
    	     BasicConfigurator.configure();
    		log.debug("MyApp 启动");
    		Foo f=new Foo();
    		f.doIt();
    		log.fatal("MyApp 中止");
    		
    	}
    }
    
    //Foo.java
    
    package com.test.log4j;
    import org.apache.log4j.Logger;
    public class Foo {
    	static Logger log=Logger.getLogger(Foo.class);
    	public void doIt(){
    		
    		log.info("Foo DoIt.");
    	}
    }
    
    log4j.properties
    log4j.rootLogger=INFO,FILE
    #定义一个新的logger,名称为admin,可通过Logger.getLogger("admin")获得,继承了rootLogger的配置
    log4j.logger.admin=DEBUG
    
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.conversionPattern=%p-[%d] -%M (%F\:%L) %m%n%n
    
    log4j.appender.FILE=org.apache.log4j.RollingFileAppender
    log4j.appender.FILE.File=c\:/wcg.log
    log4j.appender.FILE.MaxFileSize=2000KB
    log4j.appender.FILE.MaxBackupIndex=1
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=%d %-5p %c - %m%n
    
  • 相关阅读:
    phpExcel常用方法详解 F
    简单的图片变色方法 F
    TCP协议数据包及攻击分析
    你好世界
    团队项目 第一次作业
    NOIP提高组(2018)考试技巧及注意事项
    ACM常用模板数论
    ACM常用模板图论
    ACM常用模板数据结构
    I'm Coming
  • 原文地址:https://www.cnblogs.com/wucg/p/2024069.html
Copyright © 2020-2023  润新知