2016-10-28 35 views
2

Я работаю над Serilog asp.net MVC 5. все работает нормально, но я хочу переместить параметр в web.config вместо кода. Мне нужно переместить соединение с базой данных, путь к файлу. , а также я должен указать два разных уровня один для базы данных и один для файла.serilog AppSetting в web.config asp.net mvc 5

это код

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. Переменная connectionString указана в файле web.config.

Я очень новичок в serilog, поэтому я действительно смущен. пожалуйста, если вы можете воспроизвести как можно скорее.

спасибо

ответ

3

Что вам нужно сделать, это добавить информацию Serilog в appSettings теге Web.Config.

<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" /> 

Приведенный выше код помогает вам войти в базу данных SQL.

<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="" /> 

И вышеприведенное поможет вам написать текстовый файл.
Все, что вам нужно сделать в вашем коде, - это просто вызвать функцию журнала, и он автоматически войдет в то, что вы указали в конфиге.

Вы можете посмотреть на эти две страницы для получения дополнительной помощи:
https://github.com/serilog/serilog-sinks-mssqlserver
https://github.com/serilog/serilog-sinks-file