2016-10-28 3 views
2

Ich arbeite auf Serilog asp.net MVC 5. alles funktioniert gut, aber ich möchte die Einstellung in web.config anstelle von Code zu verschieben. Ich muss die Datenbankverbindung, Dateipfad verschieben. und ich muss auch zwei verschiedene Ebenen eine für die Datenbank und eine für die Datei angeben.serilog AppSetting in web.config asp.net mvc 5

Dies ist der Code

var logFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"xxx.Web-{Environment.MachineName}.log"); 
      Log.Logger = new LoggerConfiguration() 
       .MinimumLevel.Debug() 
       .WriteTo.Trace(LogEventLevel.Debug, "{Timestamp:u} [{Level}] {SourceContext}:: {CorrelationId} {Message}{NewLine}{Exception}") 
       .WriteTo.LiterateConsole(LogEventLevel.Debug, "{Timestamp:u} [{Level}] {SourceContext}:: {CorrelationId} {Message}{NewLine}{Exception}") 
       .WriteTo.RollingFile(logFileName, LogEventLevel.Debug, 
        "{Timestamp:u} [{Level}] {MachineName} {SourceContext}:: {CorrelationId} {Message}{NewLine}{Exception}", 
        retainedFileCountLimit: 31, fileSizeLimitBytes: null) 
       .WriteTo.MSSqlServer(connectionString, "LogUsers", LogEventLevel.Information) 
       .Enrich.WithExceptionDetails() 
       .Enrich.With<HttpRequestIdEnricher>() 
       .Enrich.FromLogContext() 
       .CreateLogger(); 

P. S. Die Variable connectionString stammt aus web.config.

Ich bin Serilog sehr neu, so dass ich wirklich verwirrt bin. bitte, wenn Sie so bald wie möglich wiederholen können.

danke

Antwort

3

Was Sie tun müssen, ist Serilog Informationen im appSettings Tag in Web.Config hinzuzufügen.

<add key="serilog:using:MSSqlSever" value="Serilog.Sinks.MSSqlServer" /> 
<add key="serilog:write-to:MSSqlServer.connectionString" value="nameOfConnectionString" /> 
<add key="serilog:write-to:MSSqlServer.tableName" value="Serilogs" /> 
<add key="serilog:write-to:MSSqlServer.autoCreateSqlTable" value="true" /> 

Der obige Code hilft Ihnen bei der SQL-Datenbank anmelden.

<add key="serilog:using:File" value="Serilog.Sinks.File" /> 
<add key="serilog:write-to:File.path" value="log.txt" /> 
<add key="serilog:write-to:File.fileSizeLimitBytes" value="" /> 

Und das obige hilft Ihnen, in eine Textdatei zu schreiben.
Alles, was Sie in Ihrem Code tun müssen, ist nur die Log-Funktion aufrufen und es wird automatisch auf das, was Sie in der Konfig angegeben haben protokolliert.

Möglicherweise möchten Sie an diesen beiden Seiten, um weitere Hilfe suchen:
https://github.com/serilog/serilog-sinks-mssqlserver
https://github.com/serilog/serilog-sinks-file