I'm not exactly a Log4Net expert but the call in the 2nd tier is static, this 
means if the userDAO object is ever referenced
before log4net.Config.XmlConfigurator.Configure(); is run then it will try to 
get the ILog before it is ready.
Have you tried making it non-static?

Kind Regards

Simon

-----Original Message-----
From: "João Felipe S. Pinto" [mailto:[EMAIL PROTECTED] 
Sent: 15 March 2008 01:39
To: [email protected]
Subject: ASP.NET 2.0 C# - Logging issues with multi layer app.

Hello all,

Hope this is an easy stuff to solve due to a newbies misconfig step or 
something.

lemme introduce better my problem

i'm developing a 2-tier app.

tier 1 : Web Site
tier 2: Data Access Layer

i have the log4net config part on the web.config it self.
here it is :
================================================================================
<configuration>
...
<configSections>
    <section name="log4net" 
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
</configSections> ....
<log4net>
        <appender name="RollingLogFileAppender" 
type="log4net.Appender.RollingFileAppender">
            <file value="..\logs\log-file.txt" />
            <appendToFile value="true" />
            <datePattern value="yyyyMMdd" />
            <rollingStyle value="Date" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - 
%m%n" />
            </layout>
        </appender>
        <root>
            <level value="ALL" />
            <appender-ref ref="RollingLogFileAppender" />
        </root>
    </log4net>
...
<configuration>
================================================================================
as well as the entry at global asax
================================================================================
void Application_Start(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure();
    }
================================================================================

with this done i can perfectly log from the Tier 1(Web Site) here is an
example:
================================================================================
public partial class UsersList : System.Web.UI.Page {
  ....
     ILog log =
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
....
    log.Debug("Calling userDAO.GetAllUsers()"); ....
}
================================================================================
but when i try logging on the Tier 2, doesn't do anything at all, not even an 
error.
================================================================================
public partial class userDAO : DAObase
    {
        private static readonly ILog log = 
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
.....
        public DataTable GetAllUsers(out string ErrMsg)
        {
            ErrMsg = String.Empty;
            cmd.CommandText = _queryGetAllUsers;

            log.Debug(MethodBase.GetCurrentMethod().Name + ":" + "Connecting to 
DB");

            cmd.Connection = conn.GetConn();
    .....
         }
......
}
================================================================================

--
::::: Now Playing: (Winamp is not active ;-)

João Felipe Santoro Pinto<[EMAIL PROTECTED]>

For more Info check my vCard attached



--------------------------------------------------------------------
*** This email may contain confidential information and/or copyright material.  
This email is intended for the use of the addressee only. Any unauthorized use 
may be unlawful.  If you receive this email by mistake, please advise the 
sender immediately by using the reply facility in your email software.  You 
should be aware that the contents of this email may be monitored to ensure 
compliance with the Wayfarer Transit Systems Ltd IT User policy.  Wayfarer 
Transit Systems Limited, Registered in England & Wales no: 01232487. Registered 
Office:10 Willis Way, Fleets Industrial Estate, Poole, Dorset, BH15 3SS. ***

Reply via email to