2013-04-01 2 views
1

내 프로젝트에 log4j ogging을 사용하고 있습니다. 불행히도, 내가 수동으로 havelogged 응용 프로그램에서 정보 수준을 기록 할 수 없습니다. 그것은 완벽하게 데이터베이스 로그를 기록하지만! 여기log4j 정보 수준 로깅 정보 없음

내 특성 파일입니다

log4j.rootLogger=OFF 

log4j.appender.serviceLog=org.apache.log4j.RollingFileAppender 
log4j.appender.serviceLog.File=C:/Users/prateekg/Desktop/log4j/log 

log4j.appender.dbLog=org.apache.log4j.RollingFileAppender 
log4j.appender.dbLog.File=C:/Users/prateekg/Desktop/log4j/dbLog 

log4j.appender.serviceLog.MaxFileSize=1MB 
log4j.appender.serviceLog.MaxBackupIndex=1 

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

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

log4j.category.serviceLog=INFO,serviceLog 
log4j.category.org.springframework.jdbc=DEBUG, dbLog 

편집 : 당신이 중 하나가 Logger.getLogger("serviceLog")로 로거를 정의하거나 사용자 정의 펜더를 정의 할 필요가

public static Logger logger = Logger.getLogger(Controller.class); 
Boolean commit=false; 
public Controller(DashBoardDAO dao,MessageProcessor mp, HandlerFactory hf, ToXML xml) 
{ 
    this.dao=dao; 
    this.mp=mp; 
    this.hf=hf; 
    this.xml=xml; 
    PropertyConfigurator.configure("log4j.properties"); 
} 

public Boolean controlFlow(Message message) 
{ 
    Handler handler=null; 
    String data[]=null; 
    Boolean flag=false; 

    int count=0; 

    handler=initializeHandlerFactory(message); 
    data=getMessage(handler,message); 
    flag=validate(data); 
    count=getEventCount(data); 
    //commit=mp.flag1; 
    //System.out.println("The flag is "+flag); 

    if(flag) 
    { 
     System.out.println("inside flag"); 
     String elementNames[]=dao.getElementNames(Integer.parseInt(data[0])); 
     System.out.println("No of tags "+elementNames.length); 
     logger.info("No of tags in the generated XML is "+elementNames.length); 
     File xmlFile=xml.convertToXML(elementNames, data); 
     logger.info("Temporary XML File created"); 
     logger.info("Data sent for insertion"); 
     dao.insert(count, data,xmlFile); 
     Boolean f=xmlFile.delete(); 
     System.out.println("Temp XML file Deleted: "+f); 
     if(f) 
     { 
     logger.info("Temporary XML File deleted"); 
     commit=mp.flag1; 
     } 
     else 
      logger.info("Error in deleting temporary XML File"); 
    } 
+1

로그 코드를 게시하십시오. – OQJF

+0

rootLogger가 꺼져 있고 사용자 정의 로거를 정의하지 않은 것처럼 보입니다. 루트 로거를 켜고 그것에 대한 appender를 추가하십시오. –

+0

rootlogger를 추가 할 때 a부터 z까지의 모든 것이 파일에 기록됩니다 .. 정보 레벨이 파일에 기록되기를 원합니다 .. !! – Chandeep

답변

1

: 이것은 내 로그 코드가

입니다 내 수업과 일치 함

log4j.category.my.package.Controller=INFO,serviceLog 
0 이 시작할 때 log4j에 의해보고되는 기본 구성 파일 이름 그대로 PropertyConfigurator.configure("log4j.properties");를 호출

또는 패키지 또한

log4j.category.my.package=INFO,serviceLog 

은 필요하지 않습니다.