Ich habe 3 verschiedene Anwendungen. Ich habe log4net in einer gemeinsamen Bibliothek, die unter 3 Anwendungen geteilt werden. Ist es eine schlechte Übung, denselben Logger für alle 3 Dienste zu verwenden? ich geschrieben habe so etwas wie dieseIst es schlecht, denselben Logger für verschiedene Anwendungen zu verwenden
public class Log4netLogger
{
private ILog _logger = null;
public Log4netLogger(ILog logger)
{
_logger = logger;
}
public void write(Level logLevel, string message)
{
_logger.Logger.Log(_logger.GetType(),logLevel,message,null);
}
}
und in meiner Anwendung 1 app_start Ich injecte wie diese
myContainer.RegisterType<ILog>
(
new ContainerControlledLifetimeManager(),
new InjectionFactory(x => LogManager.GetLogger("Application 1"))
);
Und ich in meinem Code verwende wie
_logger = myContainer.Resolve<log4net.ILog>();
Log4netLogger logMessage= new Log4netLogger(_logger);
logMessage.Write
(
log4net.Core.Level.Info,
logMessage
);
Auch ich eine Von den Negativen, die ich mit diesem Ansatz denke, habe ich log4net in allen meinen 3 Anwendungen installiert. Also frage ich mich, ob ich etwas falsch mache oder gibt es einen besseren Ansatz?
Ja, ich hatte das im Sinn, aber um die Protokollierungsstufe auf Write-Methode anzugeben, sollte die aufrufende Anwendung log4net haben – Vivekh