2012-09-19 13 views
7

Tôi có một chương trình java và tôi muốn đăng nhập vào tập tin/var/log/messages trên máy fedora. Tôi đang sử dụng log4j SyslogAppender nhưng nó không hoạt động.SyslogAppender không hoạt động

tính log4j tập tin của tôi chứa

# Set root category priority to INFO and its only appender to CONSOLE. 
log4j.rootCategory=INFO, CONSOLE, SYSLOG 
#log4j.rootCategory=INFO, CONSOLE, LOGFILE 

# Set the enterprise logger priority to DEBUG 
log4j.logger.com.locaid=INFO, CONSOLE, LOGFILE, SYSLOG 

# CONSOLE is set to be a ConsoleAppender using a PatternLayout. 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

# LOGFILE is set to be a File appender using a PatternLayout. 
log4j.appender.LOGFILE=org.apache.log4j.FileAppender 
log4j.appender.LOGFILE.File=/home/dev/app.log 
log4j.appender.LOGFILE.Append=true 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=[%d{dd/MM/y HH:mm:ss}][%t][%1p] %c - %m%n 

log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender 
log4j.appender.SYSLOG.syslogHost=localhost 
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.SYSLOG.layout.conversionPattern=%d{ISO8601} %-5p [%t] %c{2} %x - %m%n 
log4j.appender.SYSLOG.Facility=LOCAL1 
log4j.appender.SYSLOG.Threshold=debug 
log4j.appender.SYSLOG.FacilityPrinting=true 

trong /etc/rsyslog.conf tôi có

local1.*  /var/log/app.log 

trong/etc/sysconfig/rsyslog có

SYSLOGD_OPTIONS="-r -m 0 -c 4" 

On khởi động lại tập tin app.log dịch vụ rsyslog được tạo nhưng không có nhật ký nào được thêm vào. Tôi cũng đã thử với mặc định cơ sở USER của nó không hoạt động mặc dù logger -p LOCAL1.info cmd đang làm việc và phụ thêm đăng nhập vào app.log. Cần giúp đỡ.

+0

Tôi đoán bạn có thêm một số dòng trong tệp log4j.properties của mình. Bạn có thể hiển thị toàn bộ tập tin không? Tôi nghĩ chúng ta cần xem cách bạn sử dụng appender cùng với một logger. – maba

+0

tệp log4j đầy đủ được cập nhật ... :) –

+0

tôi đã thử các kết hợp khác nhau của cơ sở. Nhưng không hoạt động. –

Trả lời

6

Tôi không thể nhìn thấy bất cứ điều gì sai ở phần cuối log4j, nhưng /etc/default/rsyslog (trên Ubuntu) tôi nói

# Options for rsyslogd 
# -m 0 disables 'MARK' messages (deprecated, only used in compat mode < 3) 
# -r enables logging from remote machines (deprecated, only used in compat mode < 3) 
# -x disables DNS lookups on messages received with -r 
# -c compatibility mode 
# See rsyslogd(8) for more details 

đó gợi ý rằng -r-m 0 sẽ không làm việc kết hợp với -c 4 . Thay vì cố gắng để thiết lập truy cập từ xa ở đây, bạn nên chỉnh sửa /etc/rsyslogd.conf của bạn và thêm (hoặc bỏ ghi chú)

$ModLoad imudp 
$UDPServerRun 514 
+0

Cảm ơn .... nó đã làm việc cho tôi ... mặc dù tôi đã làm syslogging bằng cách sử dụng lệnh logger. –

+4

Lệnh 'logger' không sử dụng cơ chế socket UDP để nói chuyện với rsyslogd, nó sử dụng socket Unix'/dev/log'. –

2
#This Configuration File is used for Logger Module which is used for either using  Log4J or SysLog4J 
log4j.rootLogger = DEBUG,LOGFILE 

    #------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------ 
#[Log4j] 
#------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------ 

# Log4j implements Rolling File Appender Configurations 
log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender 
# The log4j layout 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
# The Log4j configuration file location 
log4j.appender.LOGFILE.File= C:/Documents and Settings/bgh28706/Desktop/log_output.cfg 
# The Log4j conversion layout to apply for 
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %t %p %c %M %m %n 
# The Log4j maximum file size to keep for before renaming to the backup file 
log4j.appender.LOGFILE.MaxFileSize=5KB 
# The maximum number of log4j files to be kept in the system 
log4j.appender.LOGFILE.MaxBackupIndex=2 
#Additivity set to False makes the output not to be produced in any other appender 
log4j.additivity.LOGFILE.file=false 


#------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------ 
#[Syslog] 
#------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------ 

# The syslog appender to be configured for the syslog configuration to affect 
log4j.appender.SYSLOGFILE=org.apache.log4j.net.SyslogAppender 
# The hostname to log the syslogger information 
log4j.appender.SYSLOGFILE.SyslogHost=localhost 
# The facility name in the logger where the log file shall be logged 
log4j.appender.SYSLOGFILE.facility=local5 
# The log filename layout of the syslogger appender 
log4j.appender.SYSLOGFILE.layout=org.apache.log4j.PatternLayout 
# The syslogger configuration pattern 
log4j.appender.SYSLOGFILE.layout.ConversionPattern=%d{ISO8601} %t %p %c %M %m %n 
#Additivity set to False makes the output not to be produced in any other appender 
log4j.additivity.SYSLOGFILE.file=false 

Kiểm tra xem điều này có thể giúp bạn khi nó hoạt động tốt cho tôi không! Trân Anand Bhat

1

Vấn đề ở đây là

SYSLOGD_OPTIONS="-r -m 0 -c 4" 

Nên

SYSLOGD_OPTIONS="-r -m 0" 

Các tùy chọn này không làm việc cùng nhau