2014-04-30 4 views
2

resources/application.conf은 다음과 같습니다.실행중인 액터 시스템의 로그 수준 변경?

akka { 
    loggers = ["akka.event.slf4j.Slf4jLogger"] 
    loglevel = "DEBUG" 
} 

나는이 application.conf을 포함 $sbt assembly를 사용하여 지방 항아리를 만들어 내 배우를 실행하려면이 항아리를 배포하고 있습니다. 이제 런타임시 내 프로그램의 로그 수준을 DEBUG에서 INFO로 변경할 수 있습니까? 그렇다면 어떻게?

내 logback.xml은 다음과 같습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <target>System.out</target> 
     <encoder> 
      <pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>logs/myjobs.log</file> 

     <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
      <fileNamePattern>logs/myjobs.%i.log.zip</fileNamePattern> 
      <minIndex>1</minIndex> 
      <maxIndex>5</maxIndex> 
     </rollingPolicy> 

     <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
      <maxFileSize>100MB</maxFileSize> 
     </triggeringPolicy> 

     <encoder> 
      <pattern>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern> 
     </encoder> 
    </appender> 


    <logger name="akka" level="INFO" /> 

    <root level="DEBUG"> 
     <appender-ref ref="CONSOLE"/> 
     <appender-ref ref="FILE"/> 
    </root> 

</configuration> 

답변

7

당신은 (액터 내에서 당신이 출발점으로 context.system을 사용) system.eventStream.setLogLevel()를 사용하여 Akka의 로그 레벨을 설정할 수 있습니다.

+0

프로그램 외부에서 런타임에 로그 수준을 변경하고 싶습니다. 그게 가능하니? –

+0

그런데 문서 http://doc.akka.io/docs/akka/snapshot/scala/logging.html이 제 의견으로는 가능하지 않다는 것이 확실하기 때문에 귀하의 의견은 그 점에서 불공평하다고 생각합니다. . – MikePatel