블로그gic 서버,log4j는 날짜에 따라 로그를 생성합니다. 왜 어제 로그 파일의 로그가 증가했습니까?

2729 단어
문제 설명:
우리는 웹logic 서버를 사용하고 다중 노드를 사용합니다. 백그라운드에서 매일 로그가 많이 발생하기 때문에 날짜에 따라 로그를 생성해야 합니다. 즉, 매일 하나의 로그 파일, 예를 들어 생성된 파일의 이름이 서버입니다.log-2014-11-20.일반 구성에 따라 log4j 프로필을 쓰기 시작합니다. 프로필은 다음과 같습니다.
### set log levels ###  
log4j.rootLogger = debug ,  stdout ,  D ,  E 
  
### \u8F93\u51FA\u5230\u65E5\u5FD7\u6587\u4EF6 ###  
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.D.DatePattern = '.'yyyy-MM-dd
#log4j.appender.D.File = /home/aaa/ahlog/serlog.log
log4j.appender.D.File = /opt/ict/pro/domains/bbb/bin/ahlog/server.log
log4j.appender.D.Append = true  
log4j.appender.D.Threshold = INFO  
log4j.appender.D.layout = org.apache.log4j.PatternLayout  
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %l:%c:%r  ] - [ %p ]  %m%n

정상적으로 어제는 19일이었고, 오늘이 되면 어제 로그를 저장한 파일을 이런 파일 이름 형식의 서버로 이름을 바꿉니다.log-2014-11-19 파일, 그리고 새로운 파일 생성:server.log.오늘 그런데 이상한 현상이 하나 생겼다. 예를 들어 오늘이 11월 20일이고log4j는 2014-11-19가 있다.log 파일, 오늘의 로그 파일은 서버입니다.log, 문제는 이 두 파일의 로그가 모두 증가하고 있다는 것입니다!!그리고 일부 일지를 잃어버렸어요.이치대로라면 어제 서류 안의 내용은 변하지 않을 것이다. 그러면 문제가 생겼다. 왜?
해결 방법:
<1> 처음에는 어떤 이유에서인지 절충하여 다른 정책을 채택했다. 파일 크기에 따라 설정하는 것이다.파일 크기를 최대 2G로 설정합니다.첫 번째 파일의 마지막 크기가 6시 이상인 것을 발견했습니다!그리고 기본적으로 모든 파일은 2시 남짓한 G이다. 그리고 처음에는 첫 번째 파일만 로그를 늘렸다가 나중에 두 개의 파일을 만들었는데 이때 세 개의 로그 파일 로그가 모두 증가했다.그리고 저는 최대 2M의 파일 크기로 설정했습니다. 첫 번째 파일은 6M이 넘었고 다른 파일은 기본적으로 2시가 넘었습니다.그럼 문제가 생겼어요, 왜요?
<2> 그리고 상황을 관리 서버의 동료에게 설명합니다. 이 데이터에 따라 3과 필연적인 관계가 있습니다. (3개의 파일이 동시에 증가하고 첫 번째 파일의 크기는 설정 크기의 3배가 넘습니다.) 그는 웹logic 서버와 관련이 있는지 추측했습니다. 이 서버는 3개의 노드를 사용했습니다!(관심 있는 아동화는 찾아볼 수 있음) 이에 따라 관련 정보를 찾았고 log4j 텍스트 파일을 다시 맞추었습니다.
### set log levels ###  
log4j.rootLogger = debug ,  stdout ,  D ,  E 
  
### \u8F93\u51FA\u5230\u65E5\u5FD7\u6587\u4EF6 ###  
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.D.DatePattern = '.'yyyy-MM-dd
#log4j.appender.D.File = /home/aaa/ahlog/serlog.log
log4j.appender.D.File = /opt/ict/pro/domains/bbb/bin/ahlog/${weblogic.Name}.log
log4j.appender.D.Append = true  
log4j.appender.D.Threshold = INFO  
log4j.appender.D.layout = org.apache.log4j.PatternLayout  
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %l:%c:%r  ] - [ %p ]  %m%n

다른 부분을 참고하십시오.
log4j.appender.D.File = /opt/ict/pro/domains/bbb/bin/ahlog/${weblogic.Name}.log

${weblogic.Name} 이것은 변수입니다. 즉, weblogic 노드의 이름입니다.
변경한 후, 동시에 app1을 생성합니다.log、app2.log、app3.log 세 개의 로그 파일, 마침 세 노드의 이름은 각각 app1, app2, app3입니다. 예를 들어 오늘 20일에 어제 세 개의 로그 파일을 생성했습니다. app1.log.2014-11-19,app2.log.2014-11-19,app3.log.2014-11-19 파일 3개.즉 규칙은 매일 노드마다 로그 파일을 생성하는 것이다.
여기까지 기본적으로 실현하다.

좋은 웹페이지 즐겨찾기