views:

98

answers:

1

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)
+1  A: 

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" />
Tuzo
Thx m8,You hit the nail right on the spot :-)Works perfect..
MüllerDK