[SCALA] Akka SLF4J의 logback 구성 및 사용
SCALAAkka SLF4J의 logback 구성 및 사용
내 akka 응용 프로그램에 대한 다음과 같은 시도하는 단계 및 구성 로깅을 수행했다 :
해결법
-
==============================
1.내가 akka.event.Logging을 사용할 수 있습니다 이로써, 필요 SLF4J 인스턴스을 지정합니다.
내가 akka.event.Logging을 사용할 수 있습니다 이로써, 필요 SLF4J 인스턴스을 지정합니다.
(2013 십이 13 시험)
나는 파일로 콘솔 로깅 및 로깅을 얻을. 내가 여기에 설명 된대로 %의 X {akkaTimestamp}를 포함하도록 변경이 내장되지 않은 로거 증명하려면 :
http://doc.akka.io/docs/akka/snapshot/scala/logging.html
build.sbt
library dependencies: (Akka version 2.2.3) ... "com.typesafe.akka" %% "akka-slf4j" % "2.2.3" "ch.qos.logback" % "logback-classic" % "1.0.9" ...
SRC / 메인 / 자료 / application.conf
akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "INFO" }
SRC / 메인 / 자원 / 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.FileAppender"> <file>log/akka.log</file> <append>false</append> <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>
내가 ActorLogging 믹스 인을 사용하고 또한 직접 로깅을 만들 때이 배열은 작동합니다 :
import akka.event.Logging val log = Logging(context.system, classOf[NameOfYourActor]) log.info("good luck!")
-
==============================
2.나도이 문제를 통해 들어 왔지만 내 경우는 클래스 경로의 문제가 아니었다.
나도이 문제를 통해 들어 왔지만 내 경우는 클래스 경로의 문제가 아니었다.
나는 com.typesafe.scalalogging.slf4j.Logging로 akka.event.Logging를 교체하고 그것이 마치 마법처럼 작동합니다!
(주 / 자원에서) 내 logback.xml :
<configuration> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/filename.log</file> <encoder> <pattern>%date %level %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <maxIndex>10</maxIndex> <FileNamePattern>logs/filename.log.%i.gz</FileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>20MB</maxFileSize> </triggeringPolicy> </appender> <root level="info"> <appender-ref ref="FILE" /> </root> </configuration>
우리는 pom.hml :
<dependency> <groupId>com.typesafe</groupId> <artifactId>scalalogging-slf4j_2.10</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.13</version> </dependency>
그리고 코드 :
import com.typesafe.scalalogging.slf4j.Logging class LoggingService extends Actor with Logging { // use logger.info() etc. }
(application.conf 사용하지 않은)
-
==============================
3.이 application.conf를 사용해보십시오 :
이 application.conf를 사용해보십시오 :
akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "DEBUG" logging-filter = "akka.event.slf4j.Slf4jLoggingFilter" }
나는 또한 당신은 아마 파일 어 펜더에 대한 당신 logback 설정에서 잘못된 클래스 이름을 가지고 것으로 나타났습니다. 당신은 <펜더 이름 = "FILE"클래스 = "ch.qos.logback.core 있습니다. fileappender ">하지만 <펜더 이름 = 있어야한다"FILE "클래스 ="ch.qos.logback.core.FileAppender ">.
또 다른 문제는 파일의 경로 일 수 있습니다. 대신 상대의 절대 파일 경로를 사용해보십시오. <파일> /absolute/path/testFile.log 파일>
또한 1.2.3에 logback 버전을 변경하려고 할 수 있습니다. 여기에 구성 sl4j에 akka 문서입니다 : 링크
-
==============================
4.나는 당신의 설정에서 변경 할 유일한 것은 weiglewilczek SLF4J 어댑터를 추가하는 것입니다.
나는 당신의 설정에서 변경 할 유일한 것은 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") } }
from https://stackoverflow.com/questions/14149798/akka-slf4j-logback-configuration-and-usage by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라에서 프록시 / 대표 (0) | 2019.11.26 |
---|---|
[SCALA] 플레이 프레임 워크 옵션 도우미의 사용 2.0 템플릿 (0) | 2019.11.26 |
[SCALA] 스칼라에서 선물의 순차적 인 실행을 수행하는 방법 (0) | 2019.11.26 |
[SCALA] SBT와 기본 시스템 라이브러리를 통합 (0) | 2019.11.26 |
[SCALA] 스칼라 - 점 표기법 대 중위 (0) | 2019.11.26 |