最近项目想要加入日志记录功能,选择了log4j,贴出一下Log4j的配置,仅作以后参考
Log.java
/**
* 日志类
*
* @author yang.yue
*
*/
public class Log {
// Logger实例
public Logger logger = null;//类属性值在构造方法初始化
// 构造函数,用于初始化Logger配置需要的属性
private Log() {
// 获得当前目录路径 打包路径问题
// String filePath=this.getClass().getResource("/").getPath();
// 找到log4j.properties配置文件所在的目录(已经创建好)
InputStream is = this.getClass().getResourceAsStream("/log4j.properties");
// 获得日志类logger的实例
logger = Logger.getLogger(this.getClass());
// logger所需的配置文件路径
// PropertyConfigurator.configure(filePath+"log4j.properties");
PropertyConfigurator.configure(is);
}
private Log(String logName) {
// 获得当前目录路径 打包路径问题
// String filePath=this.getClass().getResource("/").getPath();
// 找到log4j.properties配置文件所在的目录(已经创建好)
InputStream is = this.getClass().getResourceAsStream("/log4j.properties");
// 获得日志类logger的实例
logger = Logger.getLogger(logName);
// logger所需的配置文件路径
// PropertyConfigurator.configure(filePath+"log4j.properties");
PropertyConfigurator.configure(is);
}
private static class Loginstance{
private static final Log log = new Log();
}
public static Log getLogger() {
return Loginstance.log;
}
private static class MyLoginstance{
private static final Log log = new Log("mylogger");
}
public static Log mygetLogger() {
return MyLoginstance.log;
}
}
log4j.properties
#定义DEBUG优先级,R为日志输出目的的 ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF log4j.rootLogger=ERROR, R log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE log4j.logger.org.hibernate.type.descriptor.sql.BasicExtractor=ERROR #log4j.logger.org.hibernate.tool.hbm2ddl=ERROR log4j.logger.org.hibernate.SQL=TRACE log4j.logger.org.hibernate.jdbc=TRACE log4j.logger.org.hibernate.cache=debug log4j.logger.org.hibernate.type=ERROR log4j.logger.org.hibernate.transaction=ERROR #设置日志输出类型,为文件类型 log4j.appender.R=org.apache.log4j.RollingFileAppender # Threshold全局过滤器 在 log4j.rootlogger=[level]的基础上再次过滤 #log4j.appender.R.Threshold=ERROR #设置日志文件名my.log log4j.appender.R.file=logs.log #编码 log4j.appender.R.encoding=UTF-8 #设置日志文件大小log4j.appender.R.MaxFileSize=3MB #文件超10M备份新建,最多5个`,自动删掉最旧的一个。 log4j.appender.R.MaxBackupIndex=10 #每次在文件尾写入新的日志信息 log4j.appender.R.Append=true #日志输出信息格式类型 log4j.appender.R.layout=org.apache.log4j.PatternLayout #日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行 log4j.appender.R.layout.ConversionPattern=%n%p-%d{yyyy-MM-dd HH\:mm\:ss,SSS}[%c]-%m%n log4j.logger.mylogger=ERROR, test log4j.additivity.mylogger=false #设置日志输出类型,为文件类型 log4j.appender.test=org.apache.log4j.RollingFileAppender # Threshold全局过滤器 在 log4j.rootlogger=[level]的基础上再次过滤 #log4j.appender.R.Threshold=ERROR #设置日志文件名my.log log4j.appender.test.file=logout.log #编码 log4j.appender.test.encoding=UTF-8 #设置日志文件大小log4j.appender.R.MaxFileSize=3MB #文件超10M备份新建,最多5个`,自动删掉最旧的一个。 log4j.appender.test.MaxBackupIndex=10 #每次在文件尾写入新的日志信息 log4j.appender.test.Append=true #日志输出信息格式类型 log4j.appender.test.layout=org.apache.log4j.PatternLayout #日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行 log4j.appender.test.layout.ConversionPattern=%n%p-%d{yyyy-MM-dd HH\:mm\:ss,SSS}[%c]-%m%n
使用
Logger logger = Log.getLogger().logger;
logger.error('msg',e)