2012년 8월 5일 일요일

log4j / log4j File appender


//각 application에서 개별로 file appender를 만들어서 추가하는 사용예..

try{
   DailyRollingFileAppender appender = null;
   String logPattern = "%p [%t] (%F:%L) - %m%n";
         appender = new DailyRollingFileAppender( new PatternLayout(logPattern), "testlog.log", "'.'yyyy-MM-dd");
         Logger logger = LogManager.getLogger("com.blabla");
         logger.addAppender(appender);
         logger.setLevel(Level.INFO);
         logger.setAdditivity(true); //false하면 부모 Logger에서 logging을 하지 않음??
  }catch(Exception e){
   e.printStackTrace();
  }

1.  file size로 단순 로그파일 쌓기
    //SEP = System.getProperty("file.separator"); //window : "\", unix : "/"
    String logFullPath = "blablapath";
    if( !isExist(logFullPath)){ //로그폴더가 없으면 만든다.
        FileUtils.forceMkdir(new File(logFullPath));
    }
    String logFileFullNm = logFullPath + SEP + "blablafilename" + ".log";
    String logPattern = "%p [%t] (%F:%L) - %m%n";
    RollingFileAppender appender 
                    = new RollingFileAppender(new PatternLayout(logPattern), logFileFullNm , true); //false 기존내용을 지우고, true 기존내용 뒤에 append
    appender.setMaxFileSize("100KB");    //100KB 마다 기존파일을 backup으로 만들고 새로 쓴다  logfile.log ( 100KB 까지 여기에쓴다)
    appender.setMaxBackupIndex(5);      //백업으로 만들어지는 파일 max 갯수 (logfile.log.1, logfile.log.2... logfile.log.5 까지 쓴다. 이후는  logfile.log 이 파일에 엎는다. )
    log.addAppender(appender);
    log.setAdditivity(true);


2.  사용자 정의 파일로 쌓기
    //SEP = System.getProperty("file.separator"); //window : "\", unix : "/"
    String logFullPath = "blablapath";
    if( !isExist(logFullPath)){ //로그폴더가 없으면 만든다.
        FileUtils.forceMkdir(new File(logFullPath));
    }
    String logFileFullNm = logFullPath + SEP + "blablafilename" + ".log";
    File file = new File(logFileFullNm);
    if( file.exists()){  //기존 로그파일을 백업해서 복사한다.
        FileUtils.copyFile(file, new File(logFileFullNm + "." + Long.toString(System.currentTimeMillis())));
    }
    String logPattern = "%p [%t] (%F:%L) - %m%n";
    FileAppender appender 
                    = new FileAppender(new PatternLayout(logPattern), logFileFullNm , false); //false 기존내용을 지우고, true 기존내용 뒤에 append
    log.addAppender(appender);
    log.setAdditivity(true);
※ 사용자정의 로그파일 남기기 결과화면


댓글 없음: