最近项目想要加入日志记录功能,选择了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)