Have you verified that you can create a FileStream to the directory and create
a file? If log4net has been initialized correctly, this code will create a file
named RollingFileAppender.txt that contains the text Hello World!:
foreach (FileAppender appender in log.Logger.Repository.GetAppenders())
{
if (appender != null)
{
string directoryName = Path.GetDirectoryName(appender.File);
string tempFile = Path.Combine(directoryName, appender.Name + ".txt");
using (FileStream fileStream = File.OpenWrite(tempFile))
{
using (StreamWriter streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("Hello World!");
}
}
}
}
----- Original Message ----
From: Samuel Rochas <[EMAIL PROTECTED]>
To: Log4NET User <[email protected]>
Sent: Wednesday, June 27, 2007 11:51:34 AM
Subject: Re: no log file is created
Dear Alvaro,
I've changed my config according to yours but I still can't log. How could I
try to troubleshoot?
Samuel
Alvaro Rozo escribió: Samuel,
Try the following, this works for me in my web.config:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config
.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
More web config stuff
<log4net>
<!-- RollingFileAppender looks after rolling over files by size or
date -->
<appender name="RollingFileAppender"
type="log4net.Appender.RollingFileAppender">
<file value="C:\\Dev\\Test\\log\\log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="100000"/>
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout ">
<param name="ConversionPattern" value="="%date [%thread]
%-5level %logger [%ndc] - %message%newline"/>
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default
level -->
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
</configuration>
On 6/27/07, Samuel Rochas <[EMAIL PROTECTED]> 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";>
> <!-- 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 < [EMAIL PROTECTED]> 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 <[EMAIL PROTECTED] > 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
> [EMAIL PROTECTED] g www.iesedu.com
>
>
>
>
>
>