java 生成log4j_Java log4j配置每天生成一个日志文件 - 永恒ぃ☆心 的日志 - 网易博客...
一、配置属性文件log4j.properties
log4j.rootLogger=INFO,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} %5p [%t] (%F\:%L) - %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/home/log/system
log4j.appender.R.DatePattern ='.'yyyy-MM-dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] [%t] (%F\:%L) ->%m %n
二、项目初始化log4j
PropertyConfigurator.configure(log4j);
.......
此步骤略。
三、修改log4j源代码中DailyRollingFileAppender.java文件。
将log4j的源文件加入项目中。修改:
/**
* Rollover the current file to a new file.
*/
void rollOver() throws IOException {
/* Compute filename, but only if datePattern is specified */
if (datePattern == null) {
errorHandler.error("Missing DatePattern option in rollOver().");
return;
}
String datedFilename = fileName + sdf.format(now);
// It is too early to roll over because we are still within the
// bounds of the current interval. Rollover will occur once the
// next interval is reached.
if (scheduledFilename.equals(datedFilename)) {
return;
}
// close current file, and rename it to datedFilename
this.closeFile();
File target = new File(scheduledFilename);
if (target.exists()) {
target.delete();
}
File file = new File(fileName);
// boolean result = file.renameTo(target); boolean result = copy(file, target); if (result) {
LogLog.debug(fileName + " -> " + scheduledFilename);
} else {
LogLog.error("Failed to rename [" + fileName + "] to ["
+ scheduledFilename + "].");
}
try {
// This will also close the file. This is OK since multiple
// close operations are safe.
this.setFile(fileName, false, this.bufferedIO, this.bufferSize);
} catch (IOException e) {
errorHandler.error("setFile(" + fileName + ", false) call failed.");
}
scheduledFilename = datedFilename;
}
修改删除黄色代码,并添加蓝色代码。
并加入方法copy。
boolean copy(File src, File dst) throws IOException {
try {
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dst);
// Transfer bytes from in to out
byte[] buf = new byte[8192];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
return true;
} catch (FileNotFoundException e) {
LogLog.error("源文件不存在,或者目标文件无法被识别.");
return false;
} catch (IOException e) {
LogLog.error("文件读写错误.");
return false;
}
}
原因:
如果不修改DailyRollingFileAppender中的renameTo方法,发报错:Log4j的log4j:ERROR Failed to rename错误。
java 生成log4j_Java log4j配置每天生成一个日志文件 - 永恒ぃ☆心 的日志 - 网易博客...相关推荐
- 【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。
[下载源码]在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布.感谢博客园的"萧寒"重写的底层.开源. DEMO网址:http://www.365rs ...
- 关于幂律分布的一个笔记_哈克_新浪博客
关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记 (2011-03-02 18:12:27) 转载▼ 标签: 幂律 二八法则 杂谈 ...
- Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)
工作后Java基本没有用到,有时候自己也会把基础过一遍,下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上,如果以后有需要,直接从这里进入,可以快速复习,节省 ...
- 一个完整的搜索系统 - God bless you - 博客园
一个完整的搜索系统 - God bless you - 博客园 一个完整的搜索系统 - God bless you - 博客园 一个完整的搜索系统 一个完整的搜索系统 层次型倒排索引 基于前面非精确t ...
- java 初始化log4j_java – log4j:WARN请正确初始化log4j系统
如何解决以下这些错误-我错过了一些jar文件??? log4j:WARN No appenders could be found for logger (smslib). log4j:WARN Ple ...
- webpack4配置(1)-打包一个js文件
常用指令 npm install == npm i npm install --save == npm i -S npm insall --save-dev == npm i -D 两者的区别:-D只 ...
- 网页附加题写出下图的html,附加题(写HTML文件):根据给定的博客名单,自动生成HTML网页...
收集了学生CSDN博客地址很久了,但一直没来得及整理成贺利坚老师的完美班级网页名册.今天突然想,一共有6个班学生,如果手动写的话,太费事了.我们程序员,就是让费事不费脑的工作自动化,即使是第一次花很多 ...
- java so jnienv_JNI初步(五)jni ndk 一个.so文件依赖另一个.so文件的写法
注意:本文是在ndk环境下编写 1.写native类声明native方法 package com.godv.audiosuc; public class NativePlayers { static{ ...
- 【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。...
DEMO网址:http://www.365rss.cn/WebSnap.aspx 更新: 1,可以抓取大部分的网站,很少几率(暂未发现)返回空白图片. 2,超越Snap.com!比如http://bl ...
最新文章
- 为网站文字前面添加图标 在线调用 Font Awesome 字体icon小图标 美化网站
- 手把手教你如何安装Mac OS X 图文详细教程
- 不懂Python装饰器?教程双手奉上!
- 计算机系统-记录Bochs调试器几个常用命令
- MIME —— 从邮件传输到数据格式的定义
- BTrace入门教程
- linux下重启tomcat,日志查看
- VUE day_07(7.25)学子商城项目简略版
- PSF 点扩展函数 (from WikiPedia)
- Dagger2简单使用
- xp计算机用户名和密码忘记了怎么办,XP系统开机密码忘记了怎么办?
- 未能从dhcp服务器获得ip地址,当出现无法从DHCP服务器中获得地址的常见处理步骤...
- 删除账户后开机仍然登陆刚被删除的账户的解决方法
- C++学习笔记4:编程练习一
- java从学号中提取班级_如何实现表间查询并提取班级号
- (开源)简单的人脸识别考勤系统(python+opencv+dilb)
- 我写的一个 C++ 复数类
- 男人不知道女人的16件事
- Ubuntu系统安装CUDA或NVIDIA驱动后出现循环登录问题的Solution (附:building kernel modules error)
- 树莓派上使用python