내 클래스 경로에 log4j2 jar 파일이 있습니다. 아래는 Log4j2.xml입니다. 내 로컬 파일 "G : /test/apps.log"에 로그를 쓰고 싶어하지만, 나는 두 가지 문제에 봉착 : 웹 응용 프로그램의 Log4j2 구성
- 내가 웹 응용 프로그램을 실행는, 출력이 콘솔에만 인쇄를 그리고 파일에 아닙니다.
Log4j2.xml을
WEB-INF/classes
에 넣으라고 제안한 몇 가지 답변을 보았습니다. 그러나, 내가 깨끗한 빌드를 할 때, 파일은 삭제 될 것이므로, 설정 파일을 어디에 두어야합니까?참고 : 저는 Tomcat : 7.0.34, Servlet 3을 사용합니다. 나는 Cantalina 속성에서 Log4J에 대한 참조를 삭제했습니다.
<?xml version="1.0" encoding="UTF-8"?> <configuration status="warn"> <appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> </Console> <File name="MyFile" fileName="G:/test/apps.log"> <PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </File> </appenders> <loggers> <root level="trace"> <appender-ref ref="MyFile" level="trace" additivity="true"/> </root> </loggers> </configuration>
단지 지정하는 방법이 있습니까, 시스템 등록 정보
-Dlog4j.configurationFile=/path/to/log4j2.xml
과 위치를 지정할 수 있습니다 '-Dconfig.location =/path/to/folder'와 같은 폴더와 log4j2가이 폴더를 검색하여'log4j2.xml' 파일을 찾으십니까? 내 응용 프로그램에서는 이미 구성 파일과'log4j2.xml'을 넣은 폴더가 있으며 응용 프로그램을 시작하기 위해 별도의 옵션 플래그를 사용하고 싶지 않습니다. – lanoxx'log4j.configurationFile' 시스템 속성 대신'log4j2.xml' 파일을 클래스 패스에 넣는 것도 가능합니다. 클래스 경로에 해당 폴더 (구성 파일 포함)를 포함시킬 수 있습니다. –
나는 이것을 알고있다. 프로그래밍 방식으로이 작업을 수행하는 방법을 찾고있었습니다. – lanoxx