SLF4J 및 Log4J2를 사용하여 로깅을 설정하려고하는 스프링 부트 응용 프로그램이 있습니다. log4j.configurationFile = C : \ log4j2.xmlslf4j with log4j2는 로그 파일을 생성하지만 쓰기는하지 않습니다.
다음 내가 log4j를 설정 파일을 정의 log4j2.component.properties의 내용이 파일을 여기에package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController implements IGreetingService {
// private Logger logger = LogManager.getLogger(GreetingController.class.getName());
private Logger logger = LoggerFactory.getLogger(GreetingController.class.getName());
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@Override
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
logger.error("greeting called");
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
}
는 응용 프로그램에서 미리보기입니다
<Configuration>
<properties>
<property name="path">logs</property>
</properties>
<Appenders>
<Console name="consoleAppender" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss} %msg"/>
</Console>
<File name="myfileAppender" fileName="${path}/file.log" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<RollingFile name="rollingAppender"
fileName="c:\\roll.log"
filePattern="c:\\roll.log\\$${date:yyyy-MM}\\app-%d{MM-dd-yyyy}-%i.log">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="hello" level="error">
<AppenderRef ref="consoleAppender"/>
<AppenderRef ref="myfileAppender"/>
</Logger>
<Root level="error">
<AppenderRef ref="consoleAppender"/>
<AppenderRef ref="myfileAppender"/>
<AppenderRef ref="rollingAppender"/>
</Root>
01 : 여기
는 log4j2.xml 파일이며
콘솔, 파일 및 롤링 파일에 대한 세 개의 appender 설정이 있습니다. 응용 프로그램을 실행할 때 콘솔에 로그가 표시되지만 구성에 정의 된 것과 같이 형식이 지정되어 있지 않습니다.
2016-09-13 12:41:09.569 ERROR 9892 --- [nio-8888-exec-6] h.GreetingController : greeting called
file.log 및 roll.log는 생성되었지만 로그 정보가 없습니다. 1.3.6
밖으로 figuing 어떤 도움을 내가 무엇을 잘못하고 있어요 크게 감상 할 수있다 : 여기
는 build.gradleconfigurations {
compile.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
compile.exclude group: 'commons-logging'
}
dependencies {
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-web')
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2')
compile(group: 'org.springframework.cloud', name: 'spring-cloud-starter-eureka-server')
compile group: 'com.netflix.eureka', name: 'eureka-client', version: '1.4.10'
compile group: 'com.sun.jersey', name: 'jersey-server', version: '1.19.1'
compile group: 'com.sun.jersey', name: 'jersey-core', version: '1.19.1'
compile group: 'com.sun.jersey', name: 'jersey-servlet', version: '1.19.1'
}
봄 부트 버전에서 미리보기입니다. 미리 감사드립니다.
어떻게 log4j.configurationFile 속성을 지정합니까? –
내 VM 인수에 -Dlog4j.configurationFile = c : \\ log4j2.xml을 시도했습니다. 이것이 작동하지 않을 때 log4j2-test.properties 파일을 만들었습니다. – Girish
'log4j2.xml' 파일을'srm/main/resources' 폴더에 넣고 확인해 주시겠습니까? – nurgasemetey