乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      log4j實現(xiàn)特定功能的日志單獨輸出到指定的日志文件

       三十的狼 2020-08-06
                如何實現(xiàn)按需要,使某個功能的日志單獨輸出到指定的日志文件呢?
      其實只要在現(xiàn)有的log4j基礎上稍加配置即可實現(xiàn)這一功能。
      1、常用配置如下:
      #Level
      log4j.rootLogger = debug,CON,F,E

      ###ConsoleAppender###
      log4j.appender.CON = org.apache.log4j.ConsoleAppender
      log4j.appender.CON.layout = org.apache.log4j.PatternLayout
      log4j.appender.CON.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p %c{5}:%L - %m%n

      ###DailyRollingFileAppender###
      log4j.appender.F = org.apache.log4j.DailyRollingFileAppender
      log4j.appender.F.File = /export/Logs/all.log
      log4j.appender.F.DatePattern = '.'yyyy-MM-dd
      log4j.appender.F.Append = true
      log4j.appender.F.layout = org.apache.log4j.PatternLayout
      log4j.appender.F.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p %c{5}:%L - %m%n


      ###DailyRollingFileAppender###
      log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
      log4j.appender.E.File = /export/Logs/error.log
      log4j.appender.E.DatePattern = '.'yyyy-MM-dd
      log4j.appender.E.Append = true
      log4j.appender.E.Threshold = ERROR
      log4j.appender.E.layout = org.apache.log4j.PatternLayout
      log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p %c{5}:%L - %m%n

      2、如果需要把job的日志輸出到指定的文件中,只要追加如下內容即可,
      log4j.logger.job=INFO,job
      log4j.additivity.job = false
         #該配置就是讓job的日志只輸出到自己指定的日志文件中
      log4j.appender.job = org.apache.log4j.DailyRollingFileAppender
      log4j.appender.job.File = /export/Logs/job.log
      log4j.appender.job.DatePattern = '.'yyyy-MM-dd
      log4j.appender.job.Append = true
      log4j.appender.job.layout = org.apache.log4j.PatternLayout
      log4j.appender.job.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p %c{5}:%L - %m%n

      還有一個問題,就是自定義的日志默認是同時輸出到log4j.rootLogger所配置的日志中的,所以job不要出現(xiàn)在
      log4j.rootLogger = debug,CON,F,E中,否則其他的日志內容也會輸出到該job的日志中

      3、java代碼如下:
      public class ClearRubbishFileRunJob {

      [color=darkred]private Logger logger = LoggerFactory.getLogger("job");[/color]
      @Autowired
      private SqlSessionTemplate session;

      public void work() throws Exception {
      logger.warn("--ClearRubbishFileRunJob開始執(zhí)行--");
      // 1、刪除3天前的臨時文件
      try {
      SimpleDateFormat sp =new SimpleDateFormat("yyyyMMdd");
      Calendar s = Calendar.getInstance();
      s.add(Calendar.DATE, -3);
      Date d2 = s.getTime();
      String bef2Date = sp.format(d2);

      // 臨時文件目錄
      String filePath = FilePathConstant.ROOT_PATH;
      File fileDir = new File(filePath);
      if (fileDir.exists() && fileDir.isDirectory()) {
      for (File fd : fileDir.listFiles()) {
      String dirName = fd.getName();
      if (bef2Date.compareTo(dirName) >= 0) {
      FileUtil.deleteFileAndChildren(fd);
      }
      }
      }
      } catch (Exception e) {
      logger.error("刪除臨時文件出現(xiàn)異常,信息如下:" + e.getMessage());
      e.printStackTrace();
      }
      logger.warn("--ClearRubbishFileRunJob執(zhí)行結束--");
      }

      }



      工具類:

      /**
      * 文件操作工具類
      *
      * @date 20150205
      * */
      public class FileUtil implements Serializable {
      private static final long serialVersionUID = 1L;

      private FileUtil() {

      }

      /**
      * 刪除文件,單個文件。如果是文件夾并且包含子文件的情況下刪除失敗。需調用deleteFileAndChildren(File file)
      *
      * @date 20150205
      * */
      public static void deleteFile(File file) {
      if (file == null) {
      return;
      }
      if (file.exists()) {
      file.delete();
      }
      }

      /**
      * 刪除文件及其所有子文件
      *
      * @date 20150205
      * */
      public static void deleteFileAndChildren(File file) {
      if (file == null) {
      return;
      }
      // 判斷文件是否存在
      if (file.exists()) {
      // 判斷是不是文件夾
      if (file.isDirectory()) {
      File[] children = file.listFiles();
      if (children != null) {
      for (File child : children) {
      deleteFileAndChildren(child);
      }
      }
      file.delete();

      } else {
      // 非文件夾刪除
      file.delete();
      }
      }
      }

      /**
      * 文件拷貝
      * */
      public static void copy(File srcFile, File dstFile) throws Exception {
      if (srcFile == null || dstFile == null) {
      return;
      }
      if (!srcFile.exists()) {
      return;
      }
      dstFile.getParentFile().mkdirs();
      InputStream in = new FileInputStream(srcFile);
      OutputStream out = new FileOutputStream(dstFile);
      byte[] buf = new byte[1024];
      int len;
      while ((len = in.read(buf)) > 0) {
      out.write(buf, 0, len);
      }
      in.close();
      out.close();


        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多