logging, log4net in verschiedenen appenders auf Umständen beruht,
Ich bin mit log4net und in eine Klasse erforderlich, die Protokollierung in eine RollingFile appender, aber dann in eine andere Klasse, ich wünschte, zu Protokoll, um das Ereignisprotokoll + rolling-Datei + console appender.
Was ist die beste Praxis? und konnte ich finden Sie einige Beispiel-code?
Durch die Art und Weise, die Dinge noch schwieriger, ich bin mit Schloss Windsor Protokollierung mit Log4net zu beheben, meine Logger-Instanz.
Falls es hilft, ich dachte das unten, haben aber keine Ahnung, ob dies ist die beste Praxis, oder, wie die Aktivierung eines bestimmten logger basiert auf "name" noch Nutzung meiner aktuellen logger-Instanz von windsor:
log4net.config:
...
<logger name="EventLogOnly">
<level value="ALL" />
<appender-ref ref="EventLogAppender" />
</logger>
<logger name="ConsoleEventLog">
<level value="ALL" />
<appender-ref ref="ColoredConsoleAppender" />
<appender-ref ref="EventLogAppender" />
</logger>
...
castle windsor container-generator Klasse:
container.AddFacility("logging.facility",
new LoggingFacility(LoggerImplementation.Log4net, "log4net.config"));
Klasse, in der log:
private ILogger Logger;
public Test(ILogger logger) {
Logger.Info("Can I log under event log only?");
Logger.Info("Now can I log under both?");
}
Danke Jungs.
- Hier finden Sie einen Weg, um erstellen Sie eine benannte Logger-Instanz Tipp
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tun dies, indem Sie einen filter auf einen appender. Nur wenn der log-Ereignis übergibt der filter ist das Ereignis protokolliert, dass durch appender.
Diesem filter wird die Konfiguration melden Sie nur Veranstaltungen aus dem logger mit dem Namen "MyLogger":
...und das match von log-Meldungen mit bestimmten enthaltenen text:
Es ist ein gutes Stück der Konfiguration möglich mit Filter. Finden Sie die log4net SDK, oder die Filter-Sektion des Handbuch, für mehr details.