Vertx使用Log4j配置日志记录

时间:2017-10-01 15:53:31

标签: java log4j vert.x

我的gradle依赖项:

compile "org.slf4j:slf4j-log4j12:1.6.1"
compile "io.vertx:vertx-core:3.4.2"
compile 'io.vertx:vertx-web:3.4.2'

我的log4配置位于src/main/resouces/log4.xml 配置内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%m%n" />
        </layout>
    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="stdout" />
    </root>
</log4j:configuration>

在创建Vertx实例之前,我有这一行:

System.setProperty(
    "vertx.logger-delegate-factory-class-name", 
    "io.vertx.core.logging.SLF4JLogDelegateFactory"
)

但是在提出请求时,没有记录任何内容。如何正确配置?

2 个答案:

答案 0 :(得分:2)

您希望使用log4j进行记录,但是将工厂类名称设置为slf4j

正确的属性值为io.vertx.core.logging.Log4jLogDelegateFactory

请参阅文档中的logging部分。

答案 1 :(得分:0)

  

您还可以使用log4j.properties文件夹

中定义的src/main/resouces/配置日志
    # Root logger option
    log4j.rootLogger=DEBUG, stdout, file

    # Redirect log messages to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

    log4j.logger.io.netty.handler.codec.http.websocketx= ERROR

    log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.file.File=./logs/auth.log  

     log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy       
     log4j.appender.file.RollingPolicy.ActiveFileName =./logs/auth.log   


     log4j.appender.file.RollingPolicy.FileNamePattern=./logs/logs.%d{yyyyMMdd}.gz
     log4j.appender.file.layout = org.apache.log4j.PatternLayout
     log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
  

我希望这会对你有所帮助:)