27

次の手順を実行して、akka アプリケーションのロギングを試して構成しました。

  • application.conf ファイルを作成し、src/main/resources に配置しました。次のようになります。

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

  • logback.xml ファイルを作成し、src/main/resources に配置しました。次のようになります。

    <configuration>
    
      <appender name="FILE" class="ch.qos.logback.core.fileappender">
        <File>./logs/akka.log</File>
        <encoder>
          <pattern>%d{HH:mm:ss.SSS} [%-5level] %msg%n</pattern>
        </encoder>
      </appender>
    
      <root level="info">
        <appender-ref ref="FILE" />
      </root>
    
    </configuration>
    
  • .scala sbt ビルド ファイルに以下を追加しました。


    libraryDependencies += "com.typesafe.akka" % "akka-slf4j" % "2.0.3", libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.0.9" lazy val logback = "ch.qos.logback" % "logback-classic" % "1.0.9"

  • このコードをログに記録しようとしました:

    
        import akka.event.Logging
    val log = Logging(context.system, this) log.info("...")

私が得ているのは標準出力ログだけで、ログを使用したログファイルの作成はありません。

ステップを逃しましたか?それとも設定ミス?

4

4 に答える 4

1

あなたのセットアップで変更する唯一のことは、weiglewilczek slf4j アダプターを追加することです。

次の設定で問題なく動作しています。

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

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/app.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/app.%d{dd-MM-yyyy}.log</fileNamePattern>
            <maxHistory>60</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%d [%thread] [%class] %5p - %m%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

trait test extends com.weiglewilczek.slf4s.Logging {
  def logIt() {
    logger.info("this logs fine")
  }
}
于 2013-04-10T10:06:26.243 に答える