zoukankan      html  css  js  c++  java
  • An Entry Example of Log4j

    The log4j can be configured both programmatically and externally using special configuration files. External configuration is most preferred, because to take effect it doesn’t require change in application code, recompilation, or redeployment. Configuration files can be XML files or Java property files that can be created and edited using any text editor or XML editor, respectively.

    1. Programmatically configure log4j

    This example is from this site, the code is messy, so why not make it clean.

    package Test;
     
    import org.apache.log4j.*;
     
    public class TestLog {
     
    	/*
    	 * get a static logger instance with name TestLog
    	 */
    	static Logger myLogger = Logger.getLogger(TestLog.class.getName());
    	Appender myAppender;
    	SimpleLayout myLayout;
     
    	/* Constructor */
    	public TestLog() {
     
    		/*
    		 * Set logger priority level programmatically. Though this is better done externally
    		 */
    		myLogger.setLevel(Level.ALL);
     
    		/*
    		 * Instantiate a layout and an appender, assign layout to appender
    		 * programmatically
    		 */
    		myLayout = new SimpleLayout();
    		myAppender = new ConsoleAppender(myLayout); // Appender is Interface
     
    		/* Assign appender to the logger programmatically */
    		myLogger.addAppender(myAppender);
     
    	} // end constructor
     
    	public void do_something(int a, float b) {
     
    		/*
    		 * This log request enabled and log statement logged, since INFO = INFO
    		 */
    		myLogger.info("The values of parameters passed to method  do_something are: "+ a + ", " + b);
     
    		/* this log request is not enabled, since DEBUG < INFO */ 		myLogger.debug("Operation performed successfully"); 		Object x=null; 		if (x == null) { 			/* 			 * this log request is enabled and log statement logged, since ERROR 			 * > INFO
    			 */
    			myLogger.error("Value of X is null");
     
    		}
    	} // end do_something()
    	public static void main(String []args){
    		new TestLog().do_something(1, 3);
    	}
    } // end class MyClass

    Here is the snapshot of output:
    log4j

    2. Configure Log4j externally

    Create a file named “log4j.properties” in the “src” directory of your project.

    # Define the root logger with appender file
    log = /home/ryan/Desktop/log4j
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=${log}/log.out
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n
    

    Here is the java code.

    package Test;
    import org.apache.log4j.Logger;
    public class TestLogger {
    	static Logger myLogger = Logger.getLogger(TestLog.class.getName());
     
    	public static void main(String[] args) {
    		myLogger.info("testing");
    		myLogger.warn("warning testing");
    		myLogger.error("this is an error");
    	}
     
    }

    The log will be printed on the log.out file in /home/ryan/Desktop/log4j directory.

  • 相关阅读:
    深入JVM系列(二)之GC机制、收集器与GC调优
    使用C++ Builder XE5获取Sensor值之Light Sensor
    Xilinx FFT IP v9.0 使用
    用十句简单英语激活你的口语
    Android编译系统中的Android.bp【转】
    【定制Android系统】Android O 在ROM中添加自己的 so 库(1)——Android.mk 与 Android.bp 的区别【转】
    高通平台framework,hal,kernel打开log【转】
    如何在andorid native layer中加log function.【转】
    Android Java层,Native层,Lib层打印Log简介【转】
    Android 系统(64)---Android中m、mm、mmm、mma、mmma的区别【转】
  • 原文地址:https://www.cnblogs.com/daichangya/p/12958996.html
Copyright © 2011-2022 走看看