배경 : Spring Boot 1.4에서 시작하는 버전은 Log4J2를 사용해야하므로 지원되는 형식은 JSON 및 XML입니다. 이 사례는 주로 XML의 형식 정의 로그 설명을 사용합니다.
Spring Boot 1.5.8. Log4J2를 도입하기위한 개발 단계는 다음과 같습니다.
1. 먼저, 스프링 부트 스타터 -WEB 및 스프링 부트 스타터 패키지 아래에서 스프링 부트 스타터 로깅을 제외한 다음 스프링 부트 스타터 LOG4J2 패키지를 소개합니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트-스타터 -web </artifactid> <exclusions> <cexclusion> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-logging </artifactid> </excusion> <! ---https : //mvnrepository.com/artifact/org.springframework.springframework.spring-boot-starter-log4j2--> <pectionement> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-log4j2 </artifactid>
2. POM의 속성을 통해 파일의 변수를 수정할 수 있도록 POM에서 파일 자원 위치를 설정하십시오.
<Finalname> $ {project.name} </finalName> <Sourcedirectory> src/main/java </sourcedirectory> <testsourcedirectory> src/test/java </testsourcedirectory> <Resources> <resource> src/main/resources </directory> <filtering> </filtering> <clupicate> **/*</include> </include> </resource> </rought> 가변 교체 속성을 설정하십시오
<properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> <log4j2.level> debug> debug <log4j2.root.path>/opt/appstack/apache-tomcat/$ {project.name} </log4j2.root.path> <log4j2.error.path>/opt/appstack/apache-tomcat/logs/$ {project.name} -error </log4j2.error.path.path> <log4j2.package.path>/opt/appstack/apache-tomcat/logs/$ {project.name} -kk </log4j2.package.path> </properties> 3. Spring Boot는 구성 파일 YML 또는 속성에 대한 보호 효과가 있으므로 구성 파일의 변수를 교체하려면 플러그인이 필요합니다.
<fluginmanagement> <flugins> <plugin> <groupid> org.springframework.springframework.springframewort </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> <!-Spring-Boot application.yml 및 application.properties를 보호하기 위해 Spring-Boot, default place holder $ ves to @. Application.yml 및 Application.properties, 기본 자리 표시 자 $ {...}는 @... @... @-> <!-Spring Boot의 Maven 변수를 사용하기 위해 Spring Boot의 속성을 대체하기 위해 수정됩니다. $ {{artifactid> <artifactid> maven-resources-plugin> <confifactid>. <comoding> utf-8 </encoding> <usedefaultdelimiters> true </usedefaultdelimiters> </configuration> </plugin> </pluginmanagement>4.이 예제는 Spring Boot의 YML 구성을 사용하고 Application.yml에서 Log4J2 구성 파일을 구성합니다.
벌채 반출:
구성 : 클래스 경로 : log4j2.xml
다른 환경에 대해 다른 log4J2 구성 파일을 구성하려면 해당 응용 프로그램에서 구성 값을 설정할 수 있습니다.
5. log4j2.xml의 구성 파일을 구성하십시오
<? xml version = "1.0"alcoding = "utf-8"?> <configuration status = "warn"> <!-글로벌 매개 변수-> <properties> <property name = "pattern"> %d {yyyy-mm-dd hh : mm : ss, ss} %5p %c {1} : %m </propertit> </properter> </Properter> 레벨 = "디버그"> <appenderRef ref = "콘솔"> </appenderRef> <appenderRef ref = "rolling_file"> </appenderRef> </root> <!-쓰기 com.kk.springboot.demo to file-> <logger name = "com.kk.springboot.demo"level = "$ veptenderer. ref = "file"> </appenderref> </logger> </logger> <부록> <콘솔 이름 = "콘솔"target = "System_out"follow = "true"> <!-"true"> <!-레벨과 수준의 수준에서 콘솔 전용 정보-> <thresholdfilter level = "info"onmatch = "enccept"} <패턴> <패턴> <patternlayout> </patternlayout> </console> <!-같은 소스의 부록은 다중 rollingfiles를 정의 할 수 있습니다. 하루에 저장된 로그를 정의 할 수 있습니다-> <RollingFile name = "rolling_file"filename = "$ {log4j2.root.path} .log"filepattern = "$ {log4j2.root.path} _%d v and yyy mm-dd}. <thresholdFilter level = "info"onmatch = "enccept"onmistatch = "deny"/> <patternlayout> <polatter> $ {Pattern} </pattern> </patternlayout> <정책> <TimeBasedtriggeringPolicy Interval = "1"/> <!-<sizeBasedtriggeringPolicy Size = "1 KB"/>->>-POLITEN/>- name = "file"filename = "$ {log4j2.package.path} .Log"> <!-<!-<!-<!-콘솔은 레벨 이상 (onMatch) 및 기타 직접 거부 (onmismatch) (onmismatch) (thresholdFilter 레벨 = "debug"onmatch = "inccept"/>>>>>>>>>>>>>>>/>. <패턴> $ {pattern} </pattern> </patternlayout> </file> </부록> </configuration>6. LOG4J2 로그는 Java 프로그램 코드에서 사용됩니다.
개인 정적 로거 로그 = loggerfactory.getLogger (usercontroller.class); log.info ( "EntityParam에서 입력"); ......
7. 시스템 시간을 변경하면 테스트 로그가 매일 저장되고 구성됩니다.
Spring Boot Custom Log4J2 로그 파일에 대한 위의 예제 설명은 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.