2016-10-28 50 views
3

我有一個serilog代碼,我想將配置移動到web.config文件。serilog appSettings寫入文件在同一個服務器路徑asp.net mvc

一切工作正常,但問題是與該文件的路徑:

var logFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"EnBW.DokumentErfassung.Web-{Environment.MachineName}.log"); 
    Log.Logger = new LoggerConfiguration() 
         .ReadFrom.AppSettings(); 

我想寫新的文件在同一服務器路徑, web.config中的代碼是:

<add key="serilog:using:RollingFile" value="Serilog.Sinks.RollingFile" /> 
    <add key="serilog:write-to:RollingFile.pathFormat" value="log123-{Date}.txt" /> 

但保存的文件已保存在C:/ program file/.....

我希望它被保存在同一個域路徑。我該怎麼辦?

回答

5

的應用程序設置提供支持的環境變量,所以在Global.asax.cs中配置記錄前:

Environment.SetEnvironmentVariable("BASEDIR", AppDomain.CurrentDomain.BaseDirectory); 

而且在配置使用%BASEDIR%

<add key="serilog:write-to:RollingFile.pathFormat" 
    value="%BASEDIR%\logs\log-{Date}.txt" />