Sto utilizzando log4net per registrare un progetto.Creazione di un'istanza log4net.ILog diversa per ciascun appender
Desidero accedere a 3 file diversi: richieste, risposte ed errori.
<log4net debug="true">
<!--To turn off an appender, simply set it's threshold value to "OFF"-->
<appender type="log4net.Appender.RollingFileAppender" name="RequestAppender">
<file value="requests.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ResponseAppender">
<file value="responses.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ErrorAppender">
<file value="errors.txt" />
<threshold value="ERROR" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
</log4net>
Tuttavia, non so come ottenere un'istanza per ciascun logger sul lato .NET. Con uno standrard, 1 appender config, ho usato a seguire:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Ma questo non specifica l'appenderName, e non ho trovato un modo per specificarlo.
Qualche idea?
Grazie!
MODIFICA: Penso che mi manchi qualcosa in quanto non ho alcuna definizione nel mio file di configurazione. Non capisco la separazione tra i taglialegna e gli appendici.
EDIT # 2: Ho notato qualcosa di strano. Prima della configurazione di 3 logger multipli avevo una configurazione di 1 logger. ora, gli scritti che scrivo nei 3 logger scrivono su quel file di registro, sebbene non sia più nel file di configurazione. Per qualche ragione, non carica il nuovo file di configurazione. Come posso costringerlo a farlo?
Penso che questo sia quello che stai cercando http://stackoverflow.com/questions/1372435/configure-log4net-to-write-to-multiple-files – Microtechie
Lo penso anch'io, e la sintassi sembra ok, ma la sua non funziona. Tuttavia, tutti i membri isLevelEnabled di tutti i logger sono impostati su TRUE anche se non è il modo in cui sono impostati e i registri di test che ho scritto non vengono registrati. – Niv
Prova questo - [collegamento] (http://stackoverflow.com/questions/308436/log4net-programmatically-specify-multiple-loggers-with-multiple-file-appenders) – Nilesh