Hello again!
Thank you both for your advice.
Because i really want to log to different output files i will follow your advice Piers(now that i know that i can do that) and try to configure it correctly
Thanks again!

On 10/11/2015 5:19 PM, piers.willi...@gmail.com wrote:

When you configure log4net using the assembly attribute, it is ‘first logging call wins’ as to which attribute gets actually used to configure log4net. Log4net is then configured *once*, and so only one of those configs ever gets used. Hence all your logging going in the same place.

This behaviour can be confusing at best - I’d recommend going for explicit logging initialization in your app startup instead (imperative call to the various log4net Configurators).

BTW if your original goal was to have logging from different parts of your app go out to different files, then you can still do that, you’ll just have to do so via configuration in a single logging file (ie by setting up two FileAppenders, and configuring different loggers (based on the namespace conventions in your app) to point to each)


*From: *tasos
*Sent: *Sunday, 11 October 2015 10:26 AM
*To: *log4net-user@logging.apache.org
*Subject: *unintended usage of the same configuration file

Hello.
I'm working on a .net application and i have used this guidance http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx/
There is a project on which i have added in the assemblyinfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "foo1.config", Watch = true)]
and in another one(different assembly)
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "foo2.config", Watch = true)]
My configurations are like this http://pastebin.com/UpSpwMHH
except the different output filenames
(<param name="File" value="foofilename.log"/> )
The problem is that the assembly that uses foo1.config writes on the output
file of the file that is configured in foo2.config.
In each class i use log4net i declare as the guidance site(mentioned above) says:

private||static||readonly||ILog||Log||=||LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Thank you in advance for your help!


Reply via email to