2012-11-05 21 views
6

Non riesco a scrivere i messaggi di registro in syslog. Qualsiasi aiuto sarebbe grande. Qui è la mia semplice programma log4jScrittura dei dati del registro su syslog utilizzando log4j

import org.apache.log4j.Logger; 
import java.io.*; 
import java.sql.SQLException; 
import java.util.*; 

public class log4jExample 
{ 
    /* Get actual class name to be printed on */ 
    static Logger log = Logger.getLogger(log4jExample.class.getName()); 

    public static void main(String[] args) throws IOException,SQLException 
    { 

    log.error("Hello this is an error message"); 
    log.info("Hello this is an info message"); 
    log.fatal("Fatal error message"); 
    } 
} 

Miei annunci syslog file di

# configure the root logger 
log4j.rootLogger=INFO, SYSLOG 


# configure Syslog facility LOCAL1 appender 
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender 
log4j.appender.SYSLOG.threshold=WARN 
log4j.appender.SYSLOG.syslogHost=localhost 
log4j.appender.SYSLOG.facility=LOCAL4 
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.SYSLOG.layout.conversionPattern=[%p] %c:%L - %m%n 

risposta

12

Aggiungere le seguenti righe al file di rsyslog.conf

$ModLoad imudp 
$UDPServerRun 514 

Ha funzionato per me.

È necessario riavviare rsyslog dopo le modifiche.

+1

Potrebbe essere necessario riavviare rsyslogd anche dopo aver apportato queste modifiche. – Dave

+0

Si è dimenticato di menzionarlo. Grazie –

+0

@SandeepRao Perfetto! Ho passato circa un'ora cercando di capire perché non vedo nulla nel database MySQL da LOG4J :-) Grazie. – setevoy