2017-12-26 24 views
0

AbstractLoggingActor를 확장하여 액터를 구현했습니다. 하지만 어쨌든 akka 로그는 콘솔에만 기록되고 로그 파일에는 기록되지 않으므로 오류가 발생하지 않습니다.AbstractLoggingActor는 File Appender에 쓰지 않지만 Java Akka의 콘솔에 글을 쓰고 있습니다.

실제 akka 버전과 동일한 버전의 akka-slf4j를 사용하여 akka에서 다양한 구성을 시도했지만 도움이되지 않았습니다. 나는 처음에 사용했던 원래의 POM Configs를 붙이고있다.

logback.xml

<appender name="fileAppender" class="ch.qos.logback.core.FileAppender"> 
    <file>/opt/Corp-Async-Job-Processor/logs/corp-job-akka-framework.log</file> 
    <append>true</append> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>info</level> 
    </filter> 
    <encoder> 
     <pattern>%date{ISO8601} - %logger -> %-5level[%thread] %logger{0} - %msg%n</pattern> 
    </encoder> 
</appender> 
<!--appender name="Sentry" class="io.sentry.logback.SentryAppender"> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>INFO</level> 
    </filter> 
</appender--> 
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>debug</level> 
    </filter> 
    <encoder> 
     <pattern>%date{ISO8601} - %logger -> %-5level[%thread] %logger{0} - %msg%n</pattern> 
    </encoder> 
</appender> 

<logger name="akka" level="debug" /> 
<logger name="com.packt" level="debug"/> 

<root level="TRACE"> 
    <appender-ref ref="fileAppender"/> 
    <appender-ref ref="console"/> 

</root> 

application.conf : 프로젝트

<dependencies> 
    <dependency> 
     <groupId>com.github.davidmoten</groupId> 
     <artifactId>rxjava-jdbc</artifactId> 
     <version>0.7.6</version> 
    </dependency> 


    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.github.davidmoten</groupId> 
     <artifactId>rxjava-jdbc</artifactId> 
     <version>0.7.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.5.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${slf4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>${logback.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-core</artifactId> 
     <version>${logback.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.3.11.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-http_${artifact.id.version}</artifactId> 
     <version>${akka.http.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-http-jackson_${artifact.id.version}</artifactId> 
     <version>${akka.http.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-stream_${artifact.id.version}</artifactId> 
     <version>${akka.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.xhtmlrenderer</groupId> 
     <artifactId>flying-saucer-pdf</artifactId> 
     <version>9.1.9</version> 
    </dependency> 
    <!--dependency> 
     <groupId>de.idyl</groupId> 
     <artifactId>winzipaes</artifactId> 
     <version>1.0.1</version> 
    </dependency--> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-http-testkit_${artifact.id.version} 
</artifactId> 
     <version>${akka.http.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-s3</artifactId> 
     <version>1.11.232</version> 
    </dependency> 
    <dependency> 
     <groupId>net.lingala.zip4j</groupId> 
     <artifactId>zip4j</artifactId> 
     <version>1.3.2</version> 
    </dependency> 

</dependencies> 

의 pom.xml : 모듈의 pom.xml에

akka { 
loglevel = "DEBUG" 
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"] 
} 

종속성 :

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <akka.version>2.5.4</akka.version> 
    <artifact.id.version>2.12</artifact.id.version> 
    <akka.http.version>10.0.10</akka.http.version> 
    <mysql.version>6.0.5</mysql.version> 
    <slf4j.version>1.6.6</slf4j.version> 
    <logback.version>1.0.7</logback.version> 
</properties> 


<dependencies> 
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.0</version> 
    </dependency> 


    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations --> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>2.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.typesafe.akka</groupId> 
     <artifactId>akka-actor_${artifact.id.version}</artifactId> 
     <version>${akka.version}</version> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.3.11.RELEASE</version> 
    </dependency> 

</dependencies> 

답변

0

Logback의 ThresholdFilter는 그 수준 구성된 임계 값 아래에있는 이벤트를 거부합니다.

<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
    <level>info</level> 
</filter> 

위의 구성은 TRACE 및 DEBUG 이벤트가 거부되는 의미 : 당신의 FileAppender 다음과 같은 필터가 있습니다. 반대로 ConsoleAppender에는 ThresholdFilter이 있으며 DEBUG로 설정되어 있으며 TRACE 이벤트 만 거부합니다. Akka 로그 수준이 DEBUG로 설정되어 있기 때문에 Akka 로그 메시지는 콘솔로 보내지 만 로그 파일은 만들지 않습니다.

<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
    <level>debug</level> 
</filter> 
+0

을하지만 파일 로그에도 오류 메시지를 받고 있지 않다 : 콘솔과 파일 모두에 당신의 Akka 로그를 출력하려면

, 당신의 FileAppender에 필터의 임계 값을 변경합니다. – user3828976