在Alfresco的log4j.properties中配置SyslogAppender

在Alfresco的log4j.properties中配置SyslogAppender,log4j,alfresco,syslog,Log4j,Alfresco,Syslog,我试图使用syslogAppender将日志输出从Alfresco(Enterprise 4.2.7)后端发送到ELK服务器(Logstash->Elastic Search->Kibana) 后者的配置超出范围,因为它用于我们公司的许多其他应用程序,因此必须保持通用性 在运行Alfresco的服务器(RHEL7)上,我已经修改了/etc/rsyslog.conf,设置了syslog主机、端口和协议: # Provides UDP syslog reception $ModLoad imudp

我试图使用syslogAppender将日志输出从Alfresco(Enterprise 4.2.7)后端发送到ELK服务器(Logstash->Elastic Search->Kibana)

后者的配置超出范围,因为它用于我们公司的许多其他应用程序,因此必须保持通用性

在运行Alfresco的服务器(RHEL7)上,我已经修改了/etc/rsyslog.conf,设置了syslog主机、端口和协议:

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# [...]
# ### end of the forwarding rule ###
*.* @<host>
#提供UDP系统日志接收
$ModLoad imudp
$UDPServerRun 514
# [...]
#####转发规则的结尾###
*.* @

露天采伐可在不同级别进行定制。出于开发目的,我目前正在
中的“最高”级别(覆盖其他级别的级别)上工作,最后我设法修复了它。我的问题是由于对log4j配置的总体理解不足,特别是在户外

A我之前说过,在Alfresco log4j中,可以在3个不同的级别配置,第一个级别由另外两个级别重写。 因为我想尽量减少变化,所以我在最高级别上进行了更改。这样做,我想我不必重新定义已经在最低级别定义的
rootLogger
,我只需要将我新制作的appender添加到它中

看起来这并不容易,而且我还没有找到比重新定义它更好的方法向默认记录器(
rootLogger
then)添加新的appender

这样做会覆盖以前存在的附加器和特定的记录器(在较低级别的log4j.properties alfresco文件中定义)。因此,我不得不重新定义它们

当我使用它时,我改变了不同的调试级别,这样ELK就可以获得所有的日志(通过syslog),而本地日志文件只能获得错误级别的日志

最后,下面是我的log4j.properties的外观:

log4j.rootLogger=debug, Console, File, Syslog

###### All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
log4j.appender.Console.threshold=warn

##### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
log4j.appender.File.threshold=error

##### Syslog configuration #########
log4j.appender.Syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.Syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.Syslog.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t]
log4j.appender.Syslog.syslogHost=<host>
log4j.appender.Syslog.facility=LOCAL1
log4j.appender.Syslog.threshold=debug

####### Specific logger level definition ######
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug

### external logger global level definition ###
log4j.logger.org.apache=error
log4j.logger.org.alfresco=info
log4j.logger.org.springframework=info
log4j.rootLogger=调试、控制台、文件、系统日志
######当前设置为ConsolePender的所有输出。
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.patternalyout
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601}%x%-5p[%c{3}][%t]%m%n
log4j.appender.Console.threshold=warn
#####文件追加器定义#######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.patternalyout
log4j.appender.File.layout.ConversionPattern=%d{yyyyy-MM-dd}%d{ABSOLUTE}%-5p[%c][%t]%m%n
log4j.appender.File.threshold=错误
#####系统日志配置#########
log4j.appender.Syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.Syslog.layout=org.apache.log4j.patternalyout
log4j.appender.Syslog.layout.ConversionPattern=%d{yyyyy-MM-dd}%d{ABSOLUTE}%-5p[%c][%t]
log4j.appender.Syslog.syslogHost=
log4j.appender.Syslog.facility=LOCAL1
log4j.appender.Syslog.threshold=debug
#######特定记录器级别定义######
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug
###外部记录器全局级别定义###
log4j.logger.org.apache=错误
log4j.logger.org.alfresco=info
log4j.logger.org.springframework=info

  • 这存储在
    中,最后我设法修复了它。我的问题是由于对log4j配置的总体理解不足,特别是在户外

    A我之前说过,在Alfresco log4j中,可以在3个不同的级别配置,第一个级别由另外两个级别重写。 因为我想尽量减少变化,所以我在最高级别上进行了更改。这样做,我想我不必重新定义已经在最低级别定义的
    rootLogger
    ,我只需要将我新制作的appender添加到它中

    看起来这并不容易,而且我还没有找到比重新定义它更好的方法向默认记录器(
    rootLogger
    then)添加新的appender

    这样做会覆盖以前存在的附加器和特定的记录器(在较低级别的log4j.properties alfresco文件中定义)。因此,我不得不重新定义它们

    当我使用它时,我改变了不同的调试级别,这样ELK就可以获得所有的日志(通过syslog),而本地日志文件只能获得错误级别的日志

    最后,下面是我的log4j.properties的外观:

    log4j.rootLogger=debug, Console, File, Syslog
    
    ###### All outputs currently set to be a ConsoleAppender.
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
    log4j.appender.Console.threshold=warn
    
    ##### File appender definition #######
    log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.File.File=alfresco.log
    log4j.appender.File.Append=true
    log4j.appender.File.DatePattern='.'yyyy-MM-dd
    log4j.appender.File.layout=org.apache.log4j.PatternLayout
    log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
    log4j.appender.File.threshold=error
    
    ##### Syslog configuration #########
    log4j.appender.Syslog=org.apache.log4j.net.SyslogAppender
    log4j.appender.Syslog.layout=org.apache.log4j.PatternLayout
    log4j.appender.Syslog.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t]
    log4j.appender.Syslog.syslogHost=<host>
    log4j.appender.Syslog.facility=LOCAL1
    log4j.appender.Syslog.threshold=debug
    
    ####### Specific logger level definition ######
    log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug
    
    ### external logger global level definition ###
    log4j.logger.org.apache=error
    log4j.logger.org.alfresco=info
    log4j.logger.org.springframework=info
    
    log4j.rootLogger=调试、控制台、文件、系统日志
    ######当前设置为ConsolePender的所有输出。
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.patternalyout
    log4j.appender.Console.layout.ConversionPattern=%d{ISO8601}%x%-5p[%c{3}][%t]%m%n
    log4j.appender.Console.threshold=warn
    #####文件追加器定义#######
    log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.File.File=alfresco.log
    log4j.appender.File.Append=true
    log4j.appender.File.DatePattern='.'yyyy-MM-dd
    log4j.appender.File.layout=org.apache.log4j.patternalyout
    log4j.appender.File.layout.ConversionPattern=%d{yyyyy-MM-dd}%d{ABSOLUTE}%-5p[%c][%t]%m%n
    log4j.appender.File.threshold=错误
    #####系统日志配置#########
    log4j.appender.Syslog=org.apache.log4j.net.SyslogAppender
    log4j.appender.Syslog.layout=org.apache.log4j.patternalyout
    log4j.appender.Syslog.layout.ConversionPattern=%d{yyyyy-MM-dd}%d{ABSOLUTE}%-5p[%c][%t]
    log4j.appender.Syslog.syslogHost=
    log4j.appender.Syslog.facility=LOCAL1
    log4j.appender.Syslog.threshold=debug
    #######特定记录器级别定义######
    log4j.logger.org.alfresco.repo.jscript.ScriptLogger=debug
    ###外部记录器全局级别定义###
    log4j.logger.org.apache=错误
    log4j.logger.org.alfresco=info
    log4j.logger.org.springframework=info
    
    • 这存储在