zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Halcon HWindowControl 控件中图像的缩放与移动
    OpenCV cv::mean()函数详解
    OpenCV 霍夫变换(Hough Transform)
    OpenCV 图像分割
    OpenCV 使用ROI进行图像切割
    OpenCV 轮廓查找与绘制-最小外接矩形
    OpenCV 提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆
    KubeDL 加入 CNCF Sandbox,加速 AI 产业云原生化
    DataWorks 功能实践速览
    coredump 瘦身风云
  • 原文地址:https://www.cnblogs.com/wucg/p/2024069.html
Copyright © 2011-2022 走看看