Fork me on GitHub

Logging

Ninja通过slf4j使用Logback作为日志库.

Configuration of Logback inside Ninja

通常,在测试,开发或生产环境中运行时,您希望使用不同的日志记录设置.

您可以通过三种主要方式配置Logback.

#1 Using logback.xml

默认情况下,Logback将在应用程序的根目录中查找名为logback.xml的文件. 如果找到一个,它将相应地初始化日志记录系统. 这种方法适用于简单的设置.

#2 Using Java system property to specify link to logback.xml

Logback评估一个名为logback.configurationFile的Java系统属性. 如果您使用Ninja的独立模式,则此方法很方便:

java -Dlogback.configurationFile=/srv/conf/logback.xml -jar ninja-application.jar

这使您可以对所有实例使用一种日志记录配置. 有关此方法的更多信息,请访问: http : //logback.qos.ch/manual/configuration.html

#3 Using application.conf to switch configurations

如果您不能或不想使用外部Java系统属性,则可以使用application.conf和键logback.configurationFile指定日志文件的位置. Ninja将提取文件并相应地配置Logback.

# An example for application.conf based configuration of logback
%prod.logback.configurationFile=logback_prod.xml   # will be used in production
%dev.logback.configurationFile=logback_dev.xml     # will be used in dev mode

Ninja将按照以下顺序在三个位置查找指定的文件:

  • 在类路径上
  • 在文件系统上
  • 如果"文件"是一个http网址,它将尝试从那里加载配置.
使用application.conf配置日志记录有一个微小的缺点:

可以在Ninja启动之前开始记录. 想想Jetty启动,一旦启动完成,Ninja就开始加载. Jetty可能已经写了一些日志消息,但是Ninja的applications.conf没有配置这些消息.

在早期阶段,Logback可能会使用默认配置,该默认配置会将消息输出到System.out.

使用Java系统属性-Dlogback.configurationFile来配置日志记录将始终覆盖application.conf中的所有设置. 这也从一开始就配置日志记录.

Quick intro to Logback

Ninja为您提供了使用Logback的简单基础. 这是完美的,因为logback具有配置日志所需的一切,甚至对于您可以映像的最大系统也是如此.

配置Logback的最佳方法是遵循出色的指南,网址为: http ://logback.qos.ch/manual/configuration.html

但是以防万一,您想知道这样的logback.xml文件是什么样子:

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>myApp.log</file>

    <encoder>
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>

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

顺便说一句-您还可以在Groovy中写回日志配置文件.


by  ICOPY.SITE