NutzCN Logo
精华 nuttzboot 使用log4j网络日志打印不全的疑问
发布于 2217天前 作者 文涛(wentao) 3396 次浏览 复制 上一个帖子 下一个帖子
标签:

请问有没有人遇到过日志打印不全的情况,我是配置了rsyslog网络打印,但是打印过去不全,会以...结束
log4j配置如下:

log4j.rootLogger = info,stdout,net-log

### 输出到控制台 ###
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} [%l] - [%p]  %m%n

### 输出到日志文件 ###
log4j.appender.net-log = org.apache.log4j.net.SyslogAppender
log4j.appender.net-log.SyslogHost = 127.0.0.1
log4j.appender.net-log.Facility = LOCAL6
log4j.appender.net-log.Threshold = INFO
log4j.appender.net-log.layout = org.apache.log4j.PatternLayout
log4j.appender.net-log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%l] - [%p]  %m%n

以上ConversionPattern一模一样,但是控制台是全的,rsyslog里的不全,截断后以...结束了

13 回复

是不是太长了,rsyslog不认?

应该不是,其他的比如python打过来的日志是全的,而且单条日志量比我的还多,很苦恼

可能是SyslogAppender的限制,翻一下源码吧

确实是SyslogAppender的限制,请问nutzboot可以使用Log4j2,或者其他日志模块吗

可以的啊,加log4j2的依赖就可以

log4j2是xml配置的,nutzboot还要添加xml配置吗?

加入slf4j-log4j2

<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>2.5</version>
        </dependency>

我用了这个,貌似变成Sysout打印的日志了

还是不行,打印不全。。。

有slf4j api或者log4j的api类在,都不会走sysout

是没走sysout了,但是不知道log4j2成功没有,总之现在还是打印不全,看来得研究下logback

可以了,如有遇到的朋友可以参考
1、添加logback依赖:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.2</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.1.2</version>
</dependency>

2、删除log4j.properties配置文件
3、新增logback.xml配置文件
内容参考:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>logback: %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>127.0.0.1</syslogHost>
        <facility>AUTH</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>
    <!--关闭指定类日志输出-->
    <!--<logger name="className" level="OFF"/>-->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="SYSLOG" />
    </root>
</configuration>

以上,采用logback解决log4j对syslog打印不全的问题

添加回复
请先登陆
回到顶部