使用Essential.Diagnostics存储日志文件的相对路径

时间:2011-10-17 13:35:07

标签: asp.net-mvc-3 logging

我在ASP.NET MVC 3应用程序中使用System.Diagnostics + Essential.Diagnostics作为我的记录器。这是我的web.config:

<system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="requests" switchValue="All">
            <listeners>
                <remove name="default" />
                <add name="rollingxml" />
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add name="rollingxml"
            type="Essential.Diagnostics.RollingXmlTraceListener, Essential.Diagnostics"
            initializeData="e:\myapi\v2\App_Data\Logfiles\{ApplicationName}-{LocalDateTime:yyyy-MM-dd}.svclog"
        />
    </sharedListeners>
</system.diagnostics>

如您所见,存储日志文件的文件夹路径被硬编码为e:\myapi\v2\App_Data\Logfiles\

我想将日志文件放入我应用程序的app_data文件夹中,但由于应用程序放在我的开发PC,登台服务器和主服务器的不同位置,我需要将相对路径放在{{1 }}。类似于initializeData

我已尝试.\App_Data\Logfiles\,但已转到.\App_Data\Logfiles\

是否可以使用Essential.Diagnostics的相对路径指向我的app文件夹?

1 个答案:

答案 0 :(得分:2)

使用此令牌:{AppData}

<sharedListener>

<add name="rollingfile" 
             type="Essential.Diagnostics.RollingFileTraceListener, Essential.Diagnostics" 
             initializeData="{AppData}\{ApplicationName}-{DateTime:yyyy-MM-dd}.log" 
             convertWriteToEvent="true"></add>
<sharedListener>

参考:https://essentialdiagnostics.codeplex.com/wikipage?title=RollingFileTraceListener&referringTitle=Documentation