2017-09-03 7 views
0

Apache Chainsaw v2로 로그를 열려고 힘듭니다. zeroconf를 사용하여 내 로그를 성공적으로 열 수 없으며 기본 xmllayout도 사용할 수 없었습니다. 그것은 .net에서 나를 위해 매력처럼 일했습니다. 그러나 Java에서는 악몽입니다.Apache Chainsaw로 log4j2 로그를 여는 방법

Main 클래스 : 여기

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 


public class Start { 

    public static Logger logger = LogManager.getLogger(Start.class); 

    public static void main(String[]args){ 
     logger.info("Example log info"); 
     logger.trace("Example log trace"); 
     logger.debug("Example log debug"); 
     logger.error("Example log error"); 
     logger.fatal("Example log fatal"); 
     logger.warn("Example log warn"); 
     return; 
    } 
} 

Log4j2 구성

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="ALL" advertiser="multicastdns"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="custom layout %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </Console> 
     <File name="log4j2Chainsaw" fileName="output.log" bufferedIO="false" advertiseURI="file:///C:/Users/gswiec/IdeaProjects/Log4j2ChainsawExample/output.log" advertise="true"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </File> 
     <File name="xmlLayoutForChainsaw" fileName="output.xml" bufferedIO="false" > 
      <XmlLayout/> 
     </File> 
    </Appenders> 
    <Loggers> 
     <Root level="trace"> 
      <AppenderRef ref="Console"/> 
      <AppenderRef ref="log4j2Chainsaw"/> 
      <AppenderRef ref="xmlLayoutForChainsaw"/> 
     </Root> 
    </Loggers> 
</Configuration> 

가 치어이며, 필요한 모든 종속성이 될 것으로 보인다.

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>swiec.eu</groupId> 
    <artifactId>Log4j2ChainsawExample</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <!--Log4j2 and apache chainsaw zeroconf dependencies--> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.jmdns</groupId> 
      <artifactId>jmdns</artifactId> 
      <version>3.4.1</version> 
     </dependency> 

     <!--XmlLayout dependencies--> 
     <dependency> 
      <groupId>com.fasterxml.woodstox</groupId> 
      <artifactId>woodstox-core</artifactId> 
      <version>5.0.2</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
    </dependencies> 

</project> 

전체 예제 프로젝트는 로그를 읽기 얻기 위해 다른 접근 방식을 제안하면 나는 또한 당신의 도움을 주셔서 감사합니다 것 https://github.com/swiec/eu.swiec.log4j2apacheexample

에서 확인할 수있다. 아파치 chainsaw가 라이브 프로젝트 인 것 같지 않습니다. 사용하는 것이 좋은지 잘 모르겠습니다.

답변

0

시작하지 않고 즉시 종료하거나, 동 전기 톱 이벤트 수신을 허용하는 &을 알릴 시간이없는 앱으로 테스트해야합니다.

나는 당신의 Start.java 파일이 추가 :

import java.util.Scanner; 
... 
    public static void main(String[]args){ 
     Scanner in = new Scanner(System.in); 
     int i = in.nextInt(); 

나는 또한 당신의 log4j 설정을 업데이트 - PatternLayout을가

을 output.log 생성하는 데 사용에 대한 당신 %의 m하지 %의 MSG를 사용합니다
 <File name="log4j2chainsawappender" fileName="output.log" bufferedIO="false" advertiseURI="file://Users/scott/eu.swiec.log4j2apacheexample/output.log" advertise="true"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m"/> 

그럼 Chainsaw v2 (git의 최신 버전)를 시작하고 앱을 시작했습니다. 앱이 시작되자

, 나는 톱의이 'log4j2chainsawappender에 연결'을 선택하고, 새 탭이 나타나 올바르게 등 로거, 올바른 심각도 수준

으로 '시작'을 구문 분석, 로그 이벤트를 포맷