The Log4Net mailing list is a great source of information about using log4Net, in this forum we collect all the messages in the log4net user list and some selected threads from the developer list.
| Author |
Messages |
|
Christian Chenier
 |
| 08/05/2009 6:15 PM |
|
Hi,
I use log4net in a C# web application and am having problems configuring it to use a relative path to point to the location of a configuration file external to web.config.
In web.config, if I use
<add key="log4net.Config.File" value="C:\somePath\log4net.config" />
all works fine. However, I would like to avoid having to hard-code the physical path and would like to specify something like
<add key="log4net.Config.File" value="configs\log4net.config" />
where the configs directory is located in the same directory as web.config (the AppDomain.CurrentDomain.BaseDirectory). However this does not work (I no longer get anything output to my log file when I make that change).
I understand that one can programmatically construct a full path from the base directory, but there is surely a way to specify a relative path directly in the web.config file? I have tried modifying the string using leading slash (and backslash), etc. to no avail, and could not find a solution anywhere. Does anyone know how to do this?
(As an aside, using a relative path to specify the output file name within the <appender> works fine, relative to the base directory.)
Thanks,
|
|
|
|
|
Radovan Raszka
 |
| 08/06/2009 8:14 AM |
|
Hi,
you can try this:
<add key="log4net.Config.File" value="~\configs\log4net.config" />
but I'm not sure if this works. What you are using external config file? log4net config can be written directly in web.config.
RR
|
|
|
|
|
Karim Bourouba
 |
| 08/06/2009 9:03 AM |
|
Hi There,
I understand you desire to have a central directory for log files - but surely if they are all going to live in the \Configs dir, then this directory will always be in the same place on each machine?
Other than that, I think unless you want to have a seperate utility to manage your logfiles for you, then you will probably need to set the path in the code :(
Raszka - sometimes it is very useful to hold some configuration in an external xml file.
|
|
|
|
|
Michael Schall
 |
| 08/06/2009 4:24 PM |
|
We configure our logging in code using an external xml file using log4net.Config.XmlConfigurator.ConfigureAndWatch.
This way I can change my logging settings without resetting my website.
Mike
|
|
|
|
|
thierry lach
 |
| 08/06/2009 5:30 PM |
|
One good reason for using an external file would be that the file can be changed without restarting the web application, which would happen when updating web.config.
|
|
|
|
|
Ross Hinkley
 |
| 08/06/2009 5:39 PM |
|
Christian,
Out of curiosity, how and where are you setting the configuration file path?
-Ross
|
|
|
|
|
Christian Chenier
 |
| 08/07/2009 3:12 PM |
|
I tried using
<add key="log4net.Config.File" value="~\configs\log4net.config" />
but unfortunately this does not work.
I am setting the configuration file path in web.config under <configuration><appSettings>
As stated, this works fine if I specify a full path for the configuration file, but I have not yet found any working syntax to specify a relative path.
Thanks to those who have provided feedback.
Chris Chenier
Service de l'informatique et des communications | Computing and Communications Services 613-562-5800 x1675 cchenier@uottawa.ca
|
|
|
|
|
Ross Hinkley
 |
| 08/07/2009 3:57 PM |
|
Christian,
I'm pretty certain you can specify log4net configurations per assembly using something like the following in your AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "ConfigFile.config", Watch = true)]
I don't know if that helps you.
I guess I'm not seeing how your config setting is mapping to the configuration path. I feel like I'm still missing a piece of the puzzle.
-Ross
|
|
|
|
|
|
| You are not authorized to post a reply. |
|
|
|
ActiveForums 3.7
|