zoukankan      html  css  js  c++  java
  • Java Log4j日志使用

    在程序中使用log4j

    1.导入包
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;


    2.获取log实例
     Logger logger = Logger.getLogger


    3配置log4j.properties
    PropertyConfigurator.configure(log4j2.properties路径);

     1 #u5B9Au4E49DEBUGu4F18u5148u7EA7uFF0CRu4E3Au65E5u5FD7u8F93u51FAu76EEu7684u7684
     2 log4j.rootLogger=DEBUG, R
     3 #u8BBEu7F6Eu65E5u5FD7u8F93u51FAu7C7Bu578B,u4E3Au6587u4EF6u7C7Bu578B
     4 log4j.appender.R=org.apache.log4j.FileAppender
     5 #u8BBEu7F6Eu65E5u5FD7u6587u4EF6u540Dmy.log
     6 log4j.appender.R.file=my.log
     7 #u6BCFu6B21u5728u6587u4EF6u5C3Eu5199u5165u65B0u7684u65E5u5FD7u4FE1u606F
     8 log4j.appender.R.Append=true
     9 #u65E5u5FD7u8F93u51FAu4FE1u606Fu683Cu5F0Fu7C7Bu578B
    10 log4j.appender.R.layout=org.apache.log4j.PatternLayout
    11 #u65E5u5FD7u8F93u51FAu4FE1u606Fu683Cu5F0Fu4E3A u6362u884Cu3001u6362u884Cu3001u65E5u671Fu3001u4F18u5148u7EA7u3001[u7C7Bu540D]u3001u65E5u5FD7u4FE1u606Fu3001u6362u884C
    12 log4j.appender.R.layout.ConversionPattern=%n%n%d %p [%c] %r %n#%m%n
    View Code
    package LogTest;
    
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    
     class Log {
    	// Logger实例
    	private Logger loger;
    	// 将Log类封装成单实例的模式,独立于其他类。以后要用到日志的地方只要获得Log的实例就可以方便使用
    	private static Log log;
    
    	// 构造函数,用于初始化Logger配置需要的属性
    	private Log() {
    		// 获得当前目录路径
    		String filePath = this.getClass().getResource("/").getPath();
    		// 找到log4j.properties配置文件所在的目录(已经创建好)
    		filePath = filePath.substring(1).replace("bin", "src");
    		// 获得日志类loger的实例
    		loger = Logger.getLogger(this.getClass());
    		// loger所需的配置文件路径
    		PropertyConfigurator.configure(filePath + "log4j.properties");
    	}
    
    	static Log getLoger() {
    		if (log != null)
    			return log;
    		else
    			return new Log();
    	}
    
    	// 测试函数
    	public static void main(String args[]) {
    		Log log = Log.getLoger();
    		try {
    			// 引发异常
    			int a = 2 / 0;
    		} catch (Exception e) {
    			// 控制台打印异常信息
    			e.printStackTrace();
    			// 写入到日子文件
    			//System.out.println(e.getMessage());
    			log.loger.info("error",e);
    
    		}
    	}
    
    }
    

      

    logger.debug("Here is some DEBUG");

    logger.info("Here is some INFO");

     logger.warn("Here is some WARN");

    logger.error("Here is some ERROR");

     logger.fatal("Here is some FATAL");

    %m 输出代码中指定的信息 如 log.error("error")
    %p 输出优先级 就是上面提到的DEBUG,INFO等
    %c 输出所在类的全名
    %r 输出自应用启用到输出该log信息耗费的时间(毫秒)
    %t 输出产生该日子事件的线程名
    %n 输出换行符号 Windows平台为 "rn",unix平台“n"
    %d 输出日志时间点 默认格式是ISO8601 可以自定义格式,比如%d{yyy MM dd hh:mm:ss,sss}

  • 相关阅读:
    笔记
    作用域及this指向案例总结
    笔记
    JS 事件(捕获和冒泡 兼容性写法)
    tab标签
    笔记
    JS入门(10.16)
    JS入门(10.15)
    关键渲染路径
    Practice1小学四则运算(改进)
  • 原文地址:https://www.cnblogs.com/zeze/p/4937675.html
Copyright © 2011-2022 走看看