最近项目想要加入日志记录功能,选择了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)
本文介绍了如何在项目中配置并使用Log4j进行日志记录。提供了Log4j配置文件示例,包括不同级别的日志输出配置及RollingFileAppender的详细设置。

被折叠的 条评论
为什么被折叠?



