>  기사  >  Java  >  Spring Boot에서 로그를 기록하기 위해 log4j를 사용하는 방법에 대한 자세한 설명

Spring Boot에서 로그를 기록하기 위해 log4j를 사용하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-30 17:55:322107검색

이 글에서는 주로 spring boot에서 log4j를 소개하는 방법과 함께 필요한 친구들이 참고할 수 있는 몇 가지 기본적인 사용법을 소개합니다.

머리말

Spring Boot는 모든 내부 로그에 Commons Logging을 사용하지만 기본 구성에서는 Java Util Logging, Log4J, Log4J2와 같은 공통 로그에 대한 지원도 제공합니다. 그리고 로그백. 각 로거는 콘솔이나 파일을 사용하여 로그 내용을 출력하도록 구성할 수 있습니다. 이번 글에서는 Spring Boot에서 log4j를 활용하여 로그를 기록하는 방법을 주로 소개합니다. 관심 있는 분들은 오셔서 함께 배워보세요.

log4j 종속성 소개

Spring Boot 프로젝트를 생성할 때 spring-boot-starter-logging이 포함된 spring-boot-starter를 도입했는데, 이 종속성 내용은
은 Spring Boot의 기본 로깅 프레임워크인 Logback이므로 log4j를 도입하기 전에 다음과 같이 이 패키지의 종속성을 제외하고 log4j의 종속성을 도입해야 합니다.

<dependency> 
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter</artifactId>
 <exclusions>
 <exclusion> 
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-logging</artifactId>
 </exclusion>
 </exclusions>
</dependency>
<dependency> 
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

구성 log4j.properties

log4j 종속성을 도입한 후 src/main/resources 디렉터리에 log4j.properties 구성 파일만 추가하면 애플리케이션 로그 구성 및 사용이 시작됩니다.

콘솔 출력

다음 구성을 통해 루트 로그의 출력 수준을 INFO로 설정하고 어펜더는 stdout을 콘솔에 출력합니다

# LOG4J配置
log4j.rootCategory=INFO, stdout
# 控制台输出
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
 log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

파일로 출력

개발환경에서는 문제없이 콘솔로 출력만 하는데, 프로덕션 환경이나 테스트 환경에서는 원인추적을 용이하게 하기 위해 로그 내용이 남아있을 수 있습니다. 문제의.
다음 어펜더 콘텐츠를 추가하여 매일 다른 파일로 출력할 수 있습니다. 또한 log4j.rootCategory에 file이라는 어펜더를 추가해야 합니다.
이렇게 하면 루트 로그를 log/ 파일에 all.log가 있습니다.

#
log4j.rootCategory=INFO, stdout, file
# root日志输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.file=logs/all.log 
log4j.appender.file.DatePattern=&#39;.&#39;yyyy-MM-dd 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

분류 출력

1. 다양한 패키지에 따라 출력이 가능합니다. log/my.log에 출력하는 어펜더를 정의하고, com.didispace 패키지 아래의 로그 레벨
을 DEBUG 레벨로 설정하면 어펜더는 log/my.log에 출력하는 didifile이라는 어펜더로 설정됩니다.

# com.juzi包下的日志配置
log4j.category.com.juzi=DEBUG, didifile
# com.didispace下的日志输出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.didifile.file=logs/my.log 
log4j.appender.didifile.DatePattern=&#39;.&#39;yyyy-MM-dd 
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout 
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

는 ERROR 수준을 특정 로그 파일에 출력하는 등 다양한 수준을 분류할 수 있습니다. 구체적인 구성은 다음과 같습니다.

og4j.logger.error=errorfile 
# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.errorfile.file=logs/error.log 
log4j.appender.errorfile.DatePattern=&#39;.&#39;yyyy-MM-dd 
log4j.appender.errorfile.Threshold = ERROR 
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

이상은 Spring Boot에서 log4j를 사용하여 로그를 기록하는 방법에 대한 자세한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

위 내용은 Spring Boot에서 로그를 기록하기 위해 log4j를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.