国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Java log4j配置每天生成一個(gè)日志文件 - 永恒?!钚?的日志 - 網(wǎng)易博客

一、配置屬性文件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

二、項(xiàng)目初始化log4j

PropertyConfigurator.configure(log4j);

.......

此步驟略。

三、修改log4j源代碼中DailyRollingFileAppender.java文件。

將log4j的源文件加入項(xiàng)目中。修改:

/**
  * 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;
 }

修改刪除黃色代碼,并添加藍(lán)色代碼。

并加入方法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("源文件不存在,或者目標(biāo)文件無法被識(shí)別.");
   return false;
  } catch (IOException e) {
   LogLog.error("文件讀寫錯(cuò)誤.");
   return false;
  }
 }

原因:

如果不修改DailyRollingFileAppender中的renameTo方法,發(fā)報(bào)錯(cuò):Log4j的log4j:ERROR Failed to rename錯(cuò)誤。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
log4j.properties
使用 Log4j 將日志記錄到遠(yuǎn)程系統(tǒng)
log4j中將日志發(fā)送到遠(yuǎn)程服務(wù)器
日志Log4j使用
便利的開發(fā)工具-log4cpp快速使用指南
LOG4J配置全接觸
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服