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}

原文地址:https://www.cnblogs.com/zeze/p/4937675.html