DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

一个logback文件为多个应用配置日志的方法


开发产品时一个进程对应一个开发项目,一个项目对应一个日志配置,这是best practice,但有时一个(Eclipse中的)开发项目中包含了多个应用(分别多个进程运行),共享一个配置文件,但生成的日志要分开放在不同的文件里,应该怎么办?假设项目中包括A和B两个应用,B的代码都在com.foo包及子包(com.foo开头的包,如com.foo.bar)中。

方式1:完全分开

<configuration> 
    <appender name="CONSOLE" .../> 
    <appender name="APP_A" .../> 
    <appender name="APP_B" .../> 
    <logger name="com.foo" additivity="false" level="INFO"> 
        <appender-ref ref="CONSOLE"/> 
        <appender-ref ref="APP_B" /> 
    </logger> 
    <root level="DEBUG"> 
        <appender-ref ref="CONSOLE"/> 
        <appender-ref ref="APP_A"/> 
    </root> 
</configuration>

方式2 :A包含B

<configuration> 
    <appender name="CONSOLE" .../> 
    <appender name="APP_A" .../> 
    <appender name="APP_B" .../> 
    <logger name="com.foo" additivity="true" level="INFO"> 
        <appender-ref ref="APP_B" /> 
    </logger> 
    <root level="DEBUG"> 
        <appender-ref ref="CONSOLE"/> 
        <appender-ref ref="APP_A"/> 
    </root> 
</configuration>

方式2与方式1相比,屏幕输出(即CONSOLE的行为)完全一样,各自输出各自的,但APP_A关联的日志文件中将包含A和B所有的日志。



Published

Jun 13, 2012

Last Updated

Jun 13, 2012

Category

Tech

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor