如何使用Enterprise Library Logging登录到用户的ApplicationData文件夹?

Mül*_*rDK 3 .net logging enterprise-library

我正在使用MS EnterpriseLibrary.Logging并且工作正常但日志文件放在程序可执行文件目录中.

如何将我的日志文件放在单个用户的applicationData文件夹中?

我正在谈论的文件夹是你通过调用获得的文件夹:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)

Ran*_*ica 6

您应该能够在日志文件路径中使用环境变量.我相信这Environment.SpecialFolder.ApplicationData相当于%APPDATA%.

因此,您可以将fileName设置为:%APPDATA%\ MyApplication\Logs\trace.log 还将在运行时为您创建目录结构,因此您无需显式创建文件夹.

配置文件看起来像:

  <add fileName="%APPDATA%\MyApplication\Logs\trace.log" header=""
    footer="" formatter="Text Formatter"     
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
    traceOutputOptions="None" filter="All" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
    name="Flat File Destination" />
Run Code Online (Sandbox Code Playgroud)