È disponibile un adattatore log4net di terze parti per l'interfaccia di registrazione ASP.NET Core.
L'unica cosa che devi fare è passare il ILoggerFactory
al tuo Startup
classe, quindi chiama
loggerFactory.AddLog4Net();
e avere una configurazione in atto. Quindi non devi scrivere nessun codice di targa.
Maggiori informazioni qui
Sono in grado di registrare correttamente un file utilizzando il seguente codice
public static void Main(string[] args)
{
XmlDocument log4netConfig = new XmlDocument();
log4netConfig.Load(File.OpenRead("log4net.config"));
var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
typeof(log4net.Repository.Hierarchy.Hierarchy));
log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);
BuildWebHost(args).Run();
}
log4net.config nella radice del sito web
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="C:\Temp\" />
<datePattern value="yyyy-MM-dd.'txt'"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<maxSizeRollBackups value="100"/>
<maximumFileSize value="15MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level App %newline %message %newline %newline"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
Stai ancora cercando una soluzione? Ho preso il mio da questo link.
Tutto quello che dovevo fare era aggiungere queste due righe di codice nella parte superiore del metodo "public static void Main" nella "classe del programma".
var logRepo = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepo, new FileInfo("log4net.config"));
Sì, devi aggiungere:
- Microsoft.Extensions.Logging.Log4Net.AspNetCore utilizzando NuGet.
- Un file di testo con il nome di log4net.config e modificare la proprietà (Copia nella directory di output) del file in "Copia se più recente" o "Copia sempre".
Puoi anche configurare la tua applicazione core asp.net in modo tale che tutto ciò che è registrato nella console di output venga registrato nell'apper di tua scelta. Puoi anche scaricare questo codice di esempio da github e vedere come l'ho configurato.