로깅 용 프로젝트에서 log4j2를 사용하려고합니다. log4j2.xml이라는 이름의 conf 파일은 java 프로젝트 바로 아래에 있으며 클래스 패스에 필요한 jar 파일이 있습니다. 로깅이 아래의 conf 파일과 올바르게 작동하는지 테스트 할 때 정보 메시지가 표시 될 것으로 예상되지만 오류 메시지 만 표시됩니다. 아무도이 문제가 뭔지 알고 있습니까?log4j 2.0 구성 정보
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<properties>
<property name="servicename">m2mp_checker</property>
<property name="patternTime">%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5.5p | %-10.10t | %-20.20C:%-5.5L | %msg%n</property>
<property name="patternNoTime">%-5.5p | %-10.10t | %-20.20C:%-5.5L | %msg%n</property>
</properties>
<appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${patternTime}"/>
</Console>
</appenders>
<loggers>
<root level="INFO">
<appender-ref ref="console"/>
</root>
</loggers>
</configuration>
자바 코드 :
package test;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.jcraft.jsch.*;
/**
* @author : T12888
*/
public class Tester {
private static final Logger logger = LogManager.getLogger(Tester.class);
public static void main(String[] args) {
String username = "aa";
String host = "aa";
String pass = "aa";
String khfile = "/home/testuser/.ssh/known_hosts";
String identityfile = "/home/testuser/.ssh/id_rsa";
JSch jsch = null;
Session session = null;
Channel channel = null;
ChannelSftp c = null;
try {
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
jsch = new JSch();
session = jsch.getSession(username, host, 22);
session.setPassword(pass);
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
c = (ChannelSftp) channel;
} catch (Exception e) {
e.printStackTrace();
}
try {
logger.info("info");
String fsrc = "abc.xml", fdest = "abc.xml";
c.put(fsrc, fdest);
c.get(fdest, "/tmp/testfile.bin");
} catch (Exception e) {
logger.error("error");
e.printStackTrace();
}
finally{
c.disconnect();
session.disconnect();
}
}
}
출력 :
11:27:45.873 [main] ERROR test.Tester - error
소스 코드를 업로드하십시오. 여기서 u는 logger.info ("info")를 호출합니다. –
오케이. 그런데 디버깅 할 때 logger.info 라인은 logger.isInfoEnabled()가 false를 반환하기 때문에 작동한다는 것을 알 수 있습니다. – cacert
좋습니다, 로그 파일에 메시지를 쓰고 있습니까? –