J'implémente une base de données distribuée avec scala 2.9 et akka 2.0. Mon problème actuel est que je veux rediriger la journalisation standard vers un fichier au lieu de stdout. Je ne veux pas vraiment utiliser SLF4J ou SLF4S. Existe-t-il un moyen simple de rediriger la sortie de journalisation?Comment rediriger la journalisation dans akka?
Répondre
La documentation akka pour l'enregistrement dit, que vous pouvez enregistrer les gestionnaires dans la configuration comme ceci:
akka {
# Event handlers to register at boot time (Logging$DefaultLogger logs to STDOUT)
event-handlers = ["akka.event.Logging$DefaultLogger"]
# Options: ERROR, WARNING, INFO, DEBUG
loglevel = "DEBUG"
}
Il y a aussi un gestionnaire SLF4J
akka.event.slf4j.Slf4jEventHandler
En utilisant cela, vous pouvez ajouter une SLF4J compatible bibliothèque comme logback pour écrire vos journaux à l'endroit où vous voulez.
modifier:
Pour utiliser logback pour se connecter à un fichier que vous devez ajouter logback comme une dépendance, ajoutez le Slf4jEventHandler à votre config:
akka {
# Event handlers to register at boot time (Logging$DefaultLogger logs to STDOUT)
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
# Options: ERROR, WARNING, INFO, DEBUG
loglevel = "DEBUG"
}
et ajouter une configuration logback à votre projet lokks quelque chose comme ceci (extrait de docs logback):
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>testFile.log</file>
<append>true</append>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
en raison de l'exploitation forestière de async akka vous ne pouvez pas utiliser la variable% fil dans votre modèle de journal, utilisez plutôt la sourceThread
variable du MDC. Vous pouvez lire à ce sujet au bas de cette page: http://doc.akka.io/docs/akka/2.0/scala/logging.html
Vous n'avez pas besoin d'utiliser explicitement slf4j ou logback dans votre code, utilisez simplement la journalisation akka normale, le gestionnaire s'occupera de tout le reste.
- 1. désactiver la journalisation pour STM Akka (Multiverse)
- 2. Définir le niveau de journalisation dans Akka
- 3. Sérialisation dans Scala/Akka
- 4. Comment diffuser tout dans Akka?
- 5. Distribué Acteurs dans Akka
- 6. Comment désactiver la journalisation dans Restlet 2.0?
- 7. Comment activer la journalisation dans Rails?
- 8. comment désactiver la journalisation opengl dans xcode?
- 9. comment paramétrer la journalisation dans subsonic 3.0
- 10. Comment désactiver la journalisation automatique dans ruby
- 11. Dans Selenium, comment désactiver la journalisation?
- 12. instanciation dans AKKA Microkernel
- 13. android - comment implémenter la journalisation
- 14. Messages typés dans akka
- 15. Jetty: comment désactiver la journalisation?
- 16. Comment configurer la journalisation Hibernate?
- 17. Utiliser Akka dans la bibliothèque séparée
- 18. Django: Comment fonctionne la journalisation?
- 19. NUnit - comment inclure la journalisation
- 20. Comment contrôler la journalisation d'Hibernate?
- 21. Écraser "funcName" dans la journalisation
- 22. Comment "contramap" AKKA-flux Sink
- 23. Akka scheduling
- 24. Conserver la journalisation dans PHP
- 25. Désactiver la journalisation ServiceStack
- 26. Hadoop activer la journalisation
- 27. Cluster Acteurs Akka/Scala
- 28. performance de akka remote
- 29. QT 5.0 - Construit dans la journalisation?
- 30. Où est la classe akka Receive defined?
Oui, je l'ai trouvé. Mais existe-t-il un autre moyen que d'utiliser SLF4J pour rediriger la sortie de journalisation? –
Pour autant que je sache, il n'y a pas de FileLogger dans Akka lui-même, mais vous pouvez en créer un vous-même. Mais qu'est-ce qui ne va pas avec SLF4J? – drexin
Rien du tout. J'espérais juste qu'il y ait une autre façon de définir une variable dans le fichier de configuration. –