programing

log4j : WARN 로거에 대한 어 펜더를 찾을 수 없습니다 (웹 앱이 아닌 jar 파일 실행).

firstcheck 2021. 1. 18. 08:05
반응형

log4j : WARN 로거에 대한 어 펜더를 찾을 수 없습니다 (웹 앱이 아닌 jar 파일 실행).


이 질문에 이미 답변이 있습니다.

먼저-예,이 주제에 대한 여러 질문과 답변을 읽었으며 그 안에 도움이되는 솔루션을 얻을 수 없습니다. Tomcat 또는 JBoss를 실행하고 있지 않으며 web.xml변경할 파일 이 없습니다 . Java 6.0 및 log4j-1.2.8.jar.

별도로 패키징되고 매니페스트를 통해 연결된 jar 라이브러리가있는 IDEA IntelliJ로 실행 가능한 jar 파일을 만들고 있습니다. 따라서 Linux 서버에서 코드를 실행하고 있습니다.

me@server:/mydir> java -jar code/myjar.jar
log4j:WARN No appenders could be found for logger (FactoredEventsForTrna).
log4j:WARN Please initialize the log4j system properly.

내 log4j 구성 파일 ( 경우 에 따라 mydir에 모두 배치 mydir/code)은 다음과 같습니다.

## Logger configure file for myproject
log.dir=log/
datestamp=yyyy-MM-dd/HH:mm:ss.SSS
log4j.rootLogger=TRACE, file, proappender, console

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=1GB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=log/mydebug.log
log4j.appender.file.threshold=TRACE
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.proappender=org.apache.log4j.RollingFileAppender
log4j.appender.proappender.maxFileSize=5GB
log4j.appender.proappender.Threshold=INFO
log4j.appender.proappender.File=log/myinfo.log
log4j.appender.proappender.layout=org.apache.log4j.PatternLayout
log4j.appender.proappender.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

그리고 내가 만든 log/에서 디렉토리 mydirmydir/code단지의 경우, 다시.

어떤 아이디어?


log4j 구성을 지정할 수있는 많은 옵션이 있습니다. 하나는 파일 이름이 정확히 "log4j.properties"이고 클래스 경로에있는 것입니다. 또 다른 방법은 원하는 이름을 지정하고 다음과 같이 Java를 시작할 때 명령 줄에 시스템 속성을 추가하는 것입니다.

-Dlog4j.configuration=file:///path/to/your/log4j.properties

그들 모두는 여기 http://logging.apache.org/log4j/1.2/manual.html#defaultInit에 설명되어 있습니다.


해결책

  1. log4j.jar파일 다운로드
  2. log4j.jar빌드 경로에 파일 추가
  3. 로거 호출 :

    private static org.apache.log4j.Logger log 
        = Logger.getLogger(<class-where-this-is-used>.class);
    
  4. log4j 속성이 없으면 bin 디렉토리에 새 파일 log4j.properties 파일 새 파일을 만듭니다.

    /workspace/projectdirectory/bin/
    

샘플 log4j.properties 파일

log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%t %-5p %c{2} - %m%n 

내 log4j.properties를 리소스 폴더로 옮겼고 잘 작동했습니다!


이클립스 프로젝트 중 하나에서 문제가 발생했습니다. 놀랍게도 문제는 .project 파일의 항아리 순서였습니다. 믿거 나 말거나!


solr / examples / resources 에서 log4j.properties찾을 수 있습니다 .

파일을 찾을 수 없으면 여기에 넣습니다.

#  Logging level
solr.log=logs/
log4j.rootLogger=INFO, file, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop=WARN

# set to INFO to enable infostream log messages
log4j.logger.org.apache.solr.update.LoggingInfoStream=OFF

문안 인사


log4j.properties 파일을 src 폴더로 이동하십시오. Windows 탐색기를 열고 프로젝트가있는 디렉토리를 찾습니다. bin 디렉토리를 찾아 그 안에있는 모든 폴더삭제 합니다.

이제 이클립스에서 프로젝트를 클릭하십시오-> 청소-> 확인

이렇게하면 프로젝트가 다시 빌드되고 bin 디렉토리에서 삭제 된 모든 내용이 다시 생성됩니다.

나는 이것을 알아내는 데 시간이 걸렸다. 때때로 직접 청소를 클릭해도 작동하지 않습니다.


put the folder which has the properties file for log in java build path source. You can add it by right clicking the project ----> build path -----> configure build path ------> add t

ReferenceURL : https://stackoverflow.com/questions/11318806/log4jwarn-no-appenders-could-be-found-for-logger-running-jar-file-not-web-app

반응형