Reputation: 429
I have following configuration:
<log4net>
<root>
<level value="All"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="mylog.log"/>
<appendToFile value="true"/>
<preserveLogFileNameExtension value="true"/>
<rollingStyle value="Composite"/>
<datePattern value=".yyyyMMdd"/>
<maximumFileSize value="5MB"/>
<countDirection value="1"/>
<maxSizeRollBackups value="-1"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
And the following code in global.asax:
Sub Application_Start()
AreaRegistration.RegisterAllAreas()
RegisterGlobalFilters(GlobalFilters.Filters)
RegisterRoutes(RouteTable.Routes)
BasicConfigurator.Configure();
LogManager.GetLogger(typeof(Global_asax)).Error("Logger configured")
End Sub
For the tag file in configuration above. I have tried C:\my folder\mylog.log as well as what is seen above mylog.log
However, I do not see this file generated anywhere and there are no exceptions.
Environment: VS 2013 ASP.Net VB. Running via Debug menu. When I run IISExpress is started by VS2013 and site runs. but no log is seen.
I have tried various combinations for the file tag but nothing works.
Can someone help please?
Upvotes: 3
Views: 25812
Reputation: 1995
There may be an issue with the log folder permissions. Without granting Modify
permissions to the process user, log4net does not create a rolling log file.
Upvotes: 0
Reputation: 19
Adding debug = "true" to the <log4net>
tag (i.e. <log4net debug="true">
) can help to solve the problem
Upvotes: -1
Reputation: 31
*_%date{yyyyMMdd}.log
below is the key, if this is missing u will see logs like above
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\log4net_internal.log"/>
**<staticLogFileName value="false" />**
</listeners>
</trace>
</system.diagnostics>
</configuration>
Upvotes: 0
Reputation: 429
This is final version of what I ended up doing that worked:
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs\log4net.log"/>
<datePattern value="yyyy-MM-dd'-FULL.log'" />
<appendToFile value="true"/>
<preserveLogFileNameExtension value="true"/>
<rollingStyle value="Size"/>
<maximumFileSize value="250KB"/>
<maxSizeRollBackups value="-1"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
And
XmlConfigurator.Configure()
LogManager.GetLogger(typeof(Global_asax)).Error("Logger configured")
This logged to log\log4net.log in the application directory (i.e. where my code is )
Upvotes: 5
Reputation: 23300
This used to work for me (I've switched to the lighter and better configurable NLog), log rolled daily, was written in a subfolder named "Logs" under the app's path.
<appender name="RollingDebugAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\" />
<datePattern value="yyyy-MM-dd'-FULL.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
Upvotes: 4
Reputation: 6764
You should turn on log4net's internal debugging to figure out what's failing...
Sample web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\log4net_internal.log"/>
</listeners>
</trace>
</system.diagnostics>
</configuration>
More information available here on the troubleshooting section.
Upvotes: 4