一般框架的配置都是写好的 log4j也是,说实话 自己只知道大概意思 ,但真心不知道到底咋配置log4j的,目前 项目中有遇到,把自己配置的出来给大家分享分享,
做出来的效果大致如下图:
第一框是方法名 后面的是参数名,最后的当然是日期了。下面看实现方法,我尽量写的详细一点
我做的java脚本形式的(就是普通的java project) 不是web 项目,但此方法还是一样适用于web,所以不用担心,项目要求 要把大一点的操作步骤全部记录下来,不是简单的错误日志。一般使用log4j 要不使用properties或者使用XML 我这里就使用的是properties。大概流程是 要记录的方法调用--读properties的java类--调用log4j.jar包 -生成log.txt 具体的参数我觉得你有必要自己百度一下,下面看具体实现
(1).log4j.properties
#config root logger
#(rootLogger可以自己定义)
log4j.rootLogger = INFO,system.out
log4j.appender.system.out=org.apache.log4j.ConsoleAppender (控制台可显示)
log4j.appender.system.out.layout=org.apache.log4j.PatternLayout (输出的格局可改变,就是可以自定义输出的意思)
log4j.appender.system.out.layout.ConversionPattern=DEBUG-->%5p{%F:%L}-%m%n%(输出就是下面的样子)
#DEBUG--> INFO{MLog.java:80}-MLog clients using log4j logging.
#DEBUG--> INFO{C3P0Registry.java:204}-Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
log4j.appender.pro.file.out.File=D\:\\Batch\\logs\\
注:带#号后面是被我注释的.log4j.properties里面其实没有什么好说的。
(2)JAVA处理类
我写的也很简单,很实用
//可以设置自己的参数 这样就能得到自己的文件名了
public static void log4jFile(String param,String type){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
String time=df.format(new Date());
Properties pro=new Properties();
pro.put("log4j.logger.pro.file", "INFO,pro.file.out");
pro.put("log4j.appender.pro.file.out", "org.apache.log4j.DailyRollingFileAppender");
pro.put("log4j.appender.pro.file.out.File",Sql.readLog4jValue("log4j.appender.pro.file.out.File").trim()+"Log_"+param+"_"+type+"_"+time+".txt");//可随便修改
// pro.put("log4j.appender.pro.file.out.DatePattern","yyyy-MM-dd'.txt'");这里可以用log4j 的生成时间格式,但我用java 觉得跟灵活一点吧
pro.put("log4j.appender.pro.file.out.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.pro.file.out.layout.ConversionPattern","%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n");
PropertyConfigurator.configure(pro);
}
(3)log4j.jar
http://download.csdn.net/download/gjldwz/6765121我给个下载地址吧。
调用的话 直接类的方法名 Sql.log4jFile("参数1","参数2")显示的效果就是(可以自己修改) Log_参数1_参数2_2013-12-25.txt