一、配置属性文件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配置每天生成一个日志文件 - 永恒ぃ☆心 的日志 - 网易博客...相关推荐

  1. 【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。

    [下载源码]在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布.感谢博客园的"萧寒"重写的底层.开源. DEMO网址:http://www.365rs ...

  2. 关于幂律分布的一个笔记_哈克_新浪博客

    关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记     (2011-03-02 18:12:27)     转载▼     标签:     幂律     二八法则     杂谈     ...

  3. Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)

    工作后Java基本没有用到,有时候自己也会把基础过一遍,下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上,如果以后有需要,直接从这里进入,可以快速复习,节省 ...

  4. 一个完整的搜索系统 - God bless you - 博客园

    一个完整的搜索系统 - God bless you - 博客园 一个完整的搜索系统 - God bless you - 博客园 一个完整的搜索系统 一个完整的搜索系统 层次型倒排索引 基于前面非精确t ...

  5. java 初始化log4j_java – log4j:WARN请正确初始化log4j系统

    如何解决以下这些错误-我错过了一些jar文件??? log4j:WARN No appenders could be found for logger (smslib). log4j:WARN Ple ...

  6. webpack4配置(1)-打包一个js文件

    常用指令 npm install == npm i npm install --save == npm i -S npm insall --save-dev == npm i -D 两者的区别:-D只 ...

  7. 网页附加题写出下图的html,附加题(写HTML文件):根据给定的博客名单,自动生成HTML网页...

    收集了学生CSDN博客地址很久了,但一直没来得及整理成贺利坚老师的完美班级网页名册.今天突然想,一共有6个班学生,如果手动写的话,太费事了.我们程序员,就是让费事不费脑的工作自动化,即使是第一次花很多 ...

  8. java so jnienv_JNI初步(五)jni ndk 一个.so文件依赖另一个.so文件的写法

    注意:本文是在ndk环境下编写 1.写native类声明native方法 package com.godv.audiosuc; public class NativePlayers { static{ ...

  9. 【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。...

    DEMO网址:http://www.365rss.cn/WebSnap.aspx 更新: 1,可以抓取大部分的网站,很少几率(暂未发现)返回空白图片. 2,超越Snap.com!比如http://bl ...

最新文章

  1. 为网站文字前面添加图标 在线调用 Font Awesome 字体icon小图标 美化网站
  2. 手把手教你如何安装Mac OS X 图文详细教程
  3. 不懂Python装饰器?教程双手奉上!
  4. 计算机系统-记录Bochs调试器几个常用命令
  5. MIME —— 从邮件传输到数据格式的定义
  6. BTrace入门教程
  7. linux下重启tomcat,日志查看
  8. VUE day_07(7.25)学子商城项目简略版
  9. PSF 点扩展函数 (from WikiPedia)
  10. Dagger2简单使用
  11. xp计算机用户名和密码忘记了怎么办,XP系统开机密码忘记了怎么办?
  12. 未能从dhcp服务器获得ip地址,当出现无法从DHCP服务器中获得地址的常见处理步骤...
  13. 删除账户后开机仍然登陆刚被删除的账户的解决方法
  14. C++学习笔记4:编程练习一
  15. java从学号中提取班级_如何实现表间查询并提取班级号
  16. (开源)简单的人脸识别考勤系统(python+opencv+dilb)
  17. 我写的一个 C++ 复数类
  18. 男人不知道女人的16件事
  19. Ubuntu系统安装CUDA或NVIDIA驱动后出现循环登录问题的Solution (附:building kernel modules error)
  20. 树莓派上使用python

热门文章

  1. jenkins-基础配置
  2. [HNOI2012]排队
  3. Hadoop HA集群的搭建
  4. ArcGIS API For JS之网络分析(临近设施分析)
  5. python的字符串内建函数
  6. C语言程序设计预报作业
  7. TP3.2之WHERE组合条件处理
  8. 如何查看Ubuntu版本,以及Linux内核版本??
  9. 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
  10. php 工资 2018,佛山市2018年平均工资(社平工资)