MüllerDK
MüllerDK

Reputation: 255

How to log to user's ApplicationData folder using Enterprise Library Logging?

I'm using MS EnterpriseLibrary.Logging and that works perfectly but the log file(s) are placed in the program executable directory.

How do I get it to place my log files in individual user's applicationData folder?

The folder I'm talking about is the one you get by calling:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

Upvotes: 3

Views: 3568

Answers (1)

Randy Levy
Randy Levy

Reputation: 22655

You should be able to use environment variables in your logfile path. I believe that Environment.SpecialFolder.ApplicationData would be equivalent to %APPDATA%.

So you can set the fileName to: %APPDATA%\MyApplication\Logs\trace.log The directory structure will also be created for you at runtime so you don't have to explicitly create the folders.

The configuration file would look something like:

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

Upvotes: 6

Related Questions