logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Schall" <mike.sch...@gmail.com>
Subject Re: no log file is created
Date Wed, 27 Jun 2007 18:04:55 GMT
Put the following in your Application_Start in your Global.asax...

Dim applicationBase As String =
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
Dim log4netPath As String = Path.Combine(applicationBase, "
Web.log4net.config")

If File.Exists(log4netPath) Then
    log4net.Config.XmlConfigurator.ConfigureAndWatch(NewFileInfo(log4netPath))
Else
    Throw New System.InvalidOperationException("Unable to find logging
configuration file at " & log4netPath)
End If
Note that if this fails for some reason (file not present) or other
configuration issues, you will not have logging configured.  We kill the app
domain so that logging (and other configuration) is configured or the system
will not start up.

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    Dim lg As ILogger = Nothing
    ...
    Try
        ....
        *<Code above>
        ...
*    Catch ex As Exception
        Dim t As New Threading.Thread(AddressOf ShutdownApp)
        t.Start()
        Throw
    End Try
    ...
End Sub

Private Sub ShutdownApp()
    AppDomain.Unload(AppDomain.CurrentDomain)
End Sub
On 6/27/07, Samuel Rochas <samuel.rochas@iesedu.com> wrote:
>
> Dear Michael,
>
> I've tried to define an EventLogAppender as shown bellow, but still
> nothing happens. I may have a bigger problem ;-)
> In the Solution Explorer view, I can see the Bin directory with the
> log4net.dll inside, so for me it looks good.
>
> If I use an external config file for log4net, where do I tell my
> application to use it?
>
> Thanx
> Samuel
>
> web.config:
> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"<http://schemas.microsoft.com/.NetConfiguration/v2.0>
> >
>   <!-- Register a section handler for the log4net section -->
>   <configSections>
>     <section name="log4net" type="
> System.Configuration.IgnoreSectionHandler" />
>   </configSections>
>   <appSettings>
>   </appSettings>
>   <!-- This section contains the log4net configuration settings -->
>   <log4net>
>     <!-- Define some output appenders -->
>     <appender name="EventLogAppender" type="
> log4net.Appender.EventLogAppender" >
>       <layout type="log4net.Layout.PatternLayout">
>         <conversionPattern value="%date [%thread] %-5level %logger
> [%property{NDC}] - %message%newline" />
>       </layout>
>     </appender>
>     <appender name="A1" type="log4net.Appender.RollingFileAppender">
>       <file value="C:\Dev\Test\log\log.txt" />
>       <appendToFile value="true" />
>       <maxSizeRollBackups value="10" />
>       <maximumFileSize value="1024KB" />
>       <rollingStyle value="Size" />
>       <staticLogFileName value="true" />
>       <layout type="log4net.Layout.PatternLayout">
>         <conversionPattern value="%date [%thread] %-5level %logger [%ndc]
> - %message%newline" />
>       </layout>
>     </appender>
>     <root>
>       <level value="DEBUG" />
>       <appender-ref ref="EventLogAppender" />
>     </root>
>     <logger name="com.mypackage.test" >
>       <level value="DEBUG" />
>       <appender-ref ref="EventLogAppender" />
>     </logger>
>   </log4net>
>
> Michael Schall escribió:
>
> Are any of the other appenders working(EventViewer, Console)? If not are
> you configuring log4net?  I see you have your configuration in your web
> config file.  We don't do it this way.
>
> If the others are working, it has to be in your config file or
> environment...
>
> We use external config files and configure it manually during
> Application_Start in the global.asax.  Below is a sample of our
> Web.log4net.config file.  This way we can change logging without resetting
> the web site.
>
> <log4net>
>
>     <appender name="RollingFile" type="
> log4net.Appender.RollingFileAppender">
>         <file value="..\..\log\Regen.log" />
>         <rollingStyle value="Composite" />
>         <appendToFile value="false" />
>         <datePattern value="yyyyMMdd" />
>         <maximumFileSize value="100MB" />
>         <maxSizeRollBackups value="-1" />
>         <StaticLogFileName value="false" />
>         <layout type="log4net.Layout.PatternLayout">
>             <conversionPattern value="%5level [%date] [%thread] %-
> 30.30logger{2}     %message%newline" />
>         </layout>
>     </appender>
>
>     <appender name="EventLog" type="log4net.Appender.EventLogAppender" >
>         <applicationName value="Regen" />
>         <filter type="log4net.Filter.LevelRangeFilter">
>             <levelMin value="INFO" />
>         </filter>
>         <layout type="log4net.Layout.PatternLayout ">
>             <conversionPattern value="%logger %newline %message" />
>         </layout>
>     </appender>
>
>     <root>
>         <level value="DEBUG" />
>         <appender-ref ref="RollingFile" />
>         <appender-ref ref="EventLog" />
>     </root>
>
> </log4net>
>
> On 6/27/07, Samuel Rochas <samuel.rochas@iesedu.com> wrote:
> >
> > Dear Michael,
> >
> > I have changed my app to write a file using a TextWriter and this is
> > working so I believe my app has rights to write files. But I still have the
> > log problem, no log file is created.
> >
> > Do you have any suggestion on what should I try now?
> >
> > Regards
> > Samuel
> >
> > Michael Schall escribió:
> >
> > You don't need to escape them.  Here is my appender declaration...
> >
> >     <appender name="RollingFile" type="
> > log4net.Appender.RollingFileAppender">
> >         <file value="C:\Projects\Company_Name\Project_Name\log\web.log"
> > />
> >         <appendToFile value="true" />
> >         <maximumFileSize value="100MB" />
> >         <maxSizeRollBackups value="-1" />
> >         <layout type="log4net.Layout.PatternLayout ">
> >             <conversionPattern value="%5level [%date] [%thread] %-
> > 30.30logger{2}    %message%newline" />
> >         </layout>
> >     </appender>
> >
> > On 6/22/07, Samuel Rochas <samuel.rochas@iesedu.com > wrote:
> > >
> > > Dear Michael,
> > >
> > > I run the web server which comes with studio. I am not sure how /
> > > where
> > > to configure it. I open the IIS tool, and in the "Default web site"
> > > properties, I setup the directory rights to write. But no change is to
> > > see.
> > >
> > > Do you need to escape the '\' characters like you do in Java for the
> > > absolute file path like "C:\\path1\\path2\\file.txt"?
> > >
> > > Thank you
> > > Samuel
> > >
> > > Michael Schall escribió:
> > > > The user the application is running as has to have rights to write
> > > to
> > > > / create files in the folder where you are logging.  Keep in mind
> > > that
> > > > if you are debugging, that might be a different relative path than
> > > if
> > > > you are running the program directly.  I use an absolute path for my
> > >
> > > > rolling file appenders and they work great.
> > > >
> > > > Mike
> > >
> > >
> > >
> >
> > --
> >
> >
>
>
> --
>
>
> ------------------------------
>
>
>
>
>
> *Samuel Rochas*
> International Education Systems (IES)
> Technological Resources
> Paseo Conde Sepúlveda, 16   40002-Segovia España
> Tel: +(34) 921 100 608   g   Fax: +(34) 921 443 592
> samuel.rochas@iesedu.com  g  www.iesedu.com
>
>
>
>
>
>

Mime
View raw message