JAVA的log4j如何实现程序重新启动会自动生成新的日志文件,文件名可以是当前日期

供稿:hz-xin.com     日期:2024-05-04
如何使用log4j在每次启动程序时产生一个新的日志文件

你可以去看看tomcat的appendar,还有它的配置文件,应该就是你想要的

log4j.rootLogger=info, A1, A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH:mm:ss} [%c %M] %m%n
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.DatePattern=yyyy-MM-dd'.log'
#自己设置日志输出路径
log4j.appender.A2.File= D:/logs/log4j-
#log4j.appender.A2.MaxFileSize=2MB
#log4j.appender.A2.MaxBackupIndex=100
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH:mm:ss} [%c %M] %m%n

log4j输出日志文件时以当前日期为文件名

在初始化日志配置后加入以下代码:
Java代码 Appender appender = LogManager.getLoggerRepository().getRootLogger().getAppender("A2"); if(appender instanceof FileAppender) { FileAppender fileAppender = (FileAppender)appender; fileAppender.setFile( "log/" + DateUtil.getFormatDate() + ".log"); fileAppender.activateOptions(); } //DateUtil.getFormatDate();是指得到当前格式化后的日期

要是通过配置生成日期是不可能的

这个问题自己百度可以轻松解决的。
你搜索一下log4j配置就有了。
log4j.appender.prepay_search=org.apache.log4j.DailyRollingFileAppender
log4j.appender.prepay_search.File=${web.root}/logs/prepay_search.log
log4j.additivity.prepay_search = false
log4j.appender.prepay_search.layout=org.apache.log4j.PatternLayout
log4j.appender.prepay_search.DatePattern = '.'yyyy-MM-dd
log4j.appender.prepay_search.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
这个是配置,你说的是org.apache.log4j.DailyRollingFileAppender 这个地方。这个是每天会产生新日志的。

log4j.appender.R.File=log.txt的位置 希望可以帮到你

如何实现log4j日志邮件发送
答:log4j.appender.MAIL.layout.ConversionPattern=[framework]%d - %c -%-4r[%t]%-5p %c %x -%m%n Log4j的SMTP的级别默认是ERROR级别 默认是ERROR级别,那就是说,只有程序出错了,才可以收到邮件。不过可以自定义的级别...

如何集成Perf4j到Java应用程序中并生成性能数据
答:清单 2 中使用了 LoggingStopWatch 类,其 stop() 方法只是将执行时间数据通过 System.err.println() 输出。若与 Log4j 框架集成,则需要使用 LoggingStopWatch 的子类 Log4JStopWatch, 目前 Perf4j 还支持 Apache Commons ...

用java编写的程序中,如何实现打印的功能
答:1,模版里做循环,需要循环的地方在模版里加入#list>编辑好。2,代码里 Map resMap.put("reportList",list);t.process(resMap,out);四、javabs模式下怎么实现打印,比如医院自助机的挂号凭条,要...pos指令打印吧 ...

SSH项目中,日志如何实现,日志信息存储在何处?谢谢
答:log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE log4j.addivity.org.apache=true 应用于控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.Target=System...

...java程序(已打成jar包)开机自动启动,不启用命令行,该如何实现...
答:2. 写一个bat ,cd 到jar目录, java 要运行的类,双击bat就能执行这段java程序。你懂的,不需要多解释。 3. 打开控制面板,任务计划,添加任务计划,选择写好的bat,运行周期为计算机启动时。 追问 很详细,非常感谢。只是,这样子还是得...

如何实现网页程序自动登录(java)
答:为了便于共享Session 我们只能在浏览器中实现网页自动登录 通过上面的代码在jsp页面中测试 达不到预期目标 网页自动登录 就是希望程序自动填充用户名和密码 然后以Post方式提交给登录页面的Form所指向的action页面或方法 我将系统...

高分java连接SQL server 2000 详细步骤
答:因此用户可以继续输入数据、滚动屏幕和使用应用程序。然后,服务器将数据返回 JavaScript 代码(仍然在 Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。

java如何实现:一个一直在运行的监听程序,每当监听到数据,就把数据发给...
答:方法1:可以利用ServletContext类的对象application解决,这个属于整个web应用都公用的内部对象。例如在监听器中 public class GetConnListener implements ServletContextListener { //例如这个是要传的数据 String data="0";//当...

java程序中如何实现单击页面a中的按钮跳转到页面b
答:1.jsp页面的方式如下:跳转 response.sendRedirect("b.jsp")<jsp:forward page="b.jsp"/> 2.在swing里,给button加一个监听器,然后在监听事件中打开另一个页面。在jsp或是静态网页里,onclick=“JavaScript:window.loc...

java怎么实现程序自删除???
答:public class A{ public static void main(String[] args) throws Throwable { File file=new File("A.class");System.out.println(file.delete());} } 测试过可以删除A.class 剩下的问题就是收集程序的类文件了 你...