Windows services behaves a little differently compare to "normal"
applications - current directory for service is %systemroot%/system32,
not directory where executable resides - that's why services doesn't see
log4net config file.
I use in such situation this solution:
configure log4net using Xmlconfigurator.Configure(path_to_config), where
path_to_config is
 
string myPath =
System.Reflection.Assembly.GetExecutingAssembly().Location;

int i = myPath.LastIndexOf('\\');

string path_to_config = myPath.Remove(i + 1) + "log4net.config";

 

Radovan




________________________________

        From: Mark Modrall [mailto:[EMAIL PROTECTED] 
        Sent: Tuesday, September 11, 2007 1:21 AM
        To: Log4NET User
        Subject: RE: Trouble using XmlConfigurator assembly attribute
        
        

        Sorry it took me a while to respond... Evening commute and the
like...

        

        I tried making the path explicit in the AssemblyInfo.cs setting,
but it didn't help.

        

        The app is a windows service, the application type is Console,
and all the assemblies are signed, in case that makes a difference.

        

        Thanks

        Mark

        

        
         
        This e-mail message, and any attachments, is intended only for
the use of the individual or entity identified in the alias address of
this message and may contain information that is confidential,
privileged and subject to legal restrictions and penalties regarding its
unauthorized disclosure and use. Any unauthorized review, copying,
disclosure, use or distribution is strictly prohibited. If you have
received this e-mail message in error, please notify the sender
immediately by reply e-mail and delete this message, and any
attachments, from your system. Thank you. 
        
        
        
________________________________

        

        From: Dave McEwan [mailto:[EMAIL PROTECTED] 
        Sent: Monday, September 10, 2007 5:05 PM
        To: Log4NET User
        Subject: RE: Trouble using XmlConfigurator assembly attribute

        

        Just curious...if you put the full path in the assemblyInfo file
like so what happens:

        

        [assembly: log4net.Config.XmlConfigurator(ConfigFile =
"C:\MyApp\bin\App.log4net", Watch = true)]

        

        
________________________________


        From: Mark Modrall [mailto:[EMAIL PROTECTED] 
        Sent: Monday, September 10, 2007 5:01 PM
        To: Log4NET User
        Subject: RE: Trouble using XmlConfigurator assembly attribute

        

        Yep...  I'm leaving the assembly attributes in and just adding
the line to Main().  If I have it done directly in Main() it gets the
right config; if I leave it to the assembly attributes, it doesn't.
Assemblies and configs all go to the same dir.  That's why I'm
scratching my head...

        

        Thanks
        Mark

        

        

        

        This e-mail message, and any attachments, is intended only for
the use of the individual or entity identified in the alias address of
this message and may contain information that is confidential,
privileged and subject to legal restrictions and penalties regarding its
unauthorized disclosure and use. Any unauthorized review, copying,
disclosure, use or distribution is strictly prohibited. If you have
received this e-mail message in error, please notify the sender
immediately by reply e-mail and delete this message, and any
attachments, from your system. Thank you. 

        
________________________________


        From: Dave McEwan [mailto:[EMAIL PROTECTED] 
        Sent: Monday, September 10, 2007 4:58 PM
        To: Log4NET User
        Subject: RE: Trouble using XmlConfigurator assembly attribute

        

        Are you sure that your config file is in the "same" directory as
the executable?

        

        

        
________________________________


        From: Mark Modrall [mailto:[EMAIL PROTECTED] 
        Sent: Monday, September 10, 2007 4:56 PM
        To: [email protected]
        Subject: Trouble using XmlConfigurator assembly attribute

        

        Hi...

        

                    I've got some programs/assemblies that I'm building
and for some reason, the XmlConfigurator assembly attribute isn't
working.  A couple of the assemblies have

        

        [assembly: log4net.Config.XmlConfigurator(ConfigFile =
"App.log4net", Watch = true)]

        

        In their AssemblyInfo.cs files, but when I run the program

        

        Log4Net.LogManager.GetLogger("foo");

        

        Doesn't return the logger defined in the file.

        

                    If I put

        log4net.Config.XmlConfigurator.Configure(new
System.IO.FileInfo("App.log4net"));

        

        into the app Main(), though, it does find the config, load it,
and return the right logger instance.

        

                    Is there some trick to using the assembly attribute?

        

        Thanks
        Mark

        

        

        This e-mail message, and any attachments, is intended only for
the use of the individual or entity identified in the alias address of
this message and may contain information that is confidential,
privileged and subject to legal restrictions and penalties regarding its
unauthorized disclosure and use. Any unauthorized review, copying,
disclosure, use or distribution is strictly prohibited. If you have
received this e-mail message in error, please notify the sender
immediately by reply e-mail and delete this message, and any
attachments, from your system. Thank you. 

Reply via email to