Date: Prev Next Date Index Thread: Prev Next Thread Index
Website Performance Monitoring
Thanks for proposal to John and Ron, it works well.
But when I tried the reverse strategy (set Threshold to OFF in config file and
change to DEBUG when needed), I noticed that empty log file (Service.log in my
configuration) is created (file size = 0 bytes).
Can this feature be disabled?
I think it would be great to add some samples of programatic configuration into
SDK documentation - current documentation is completely out of any example.
Radovan
________________________________
Od: Ron Grabowski [ mailto:rongrabowski@xxxxxxxxx]
Odesláno: pá 3.8.2007 4:51
Komu: Log4NET User
Předmět: Re: Disable/enable appender for all loggers
Instead of removing the appender you could just set its threshold to OFF then
when you want to enable it again you can set it back to DEBUG:
// untested
public static void SetThreshold(string appenderName, Level threshold)
{
foreach (AppenderSkeleton appender in
LogManager.GetRepository().GetAppenders())
{
if (appender.Name == appenderName)
{
appender.Threshold = threshold;
appender.ActivateOptions();
break;
}
}
}
----- Original Message ----
From: Radovan Raszka <raszka@xxxxxxxx>
To: log4net-user@xxxxxxxxxxxxxxxxxx
Sent: Friday, July 27, 2007 2:23:05 AM
Subject: Disable/enable appender for all loggers
Disable/enable appender for all loggers Hello,
I am using three appenders in my log4net configuration (see bellow). But I need
programatically disable and reenable RollingFile appender at certain
situations. Is there any simple solution? I tried to use programatic
configuration only.
My config:
<log4net>
<appender name="Console"
type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name
and line number -->
<conversionPattern value="%date{HH:mm:ss,fff}
%5level [%thread] %message%n" />
</layout>
<Threshold value="DEBUG" />
</appender>
<appender name="RollingFile"
type="log4net.Appender.RollingFileAppender">
<appendToFile value="true" />
<file value="Service.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{dd-MM-yyyy
HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n" />
</layout>
<rollingStyle value="Date" />
<Threshold value="DEBUG" />
</appender>
<appender name="EvLog"
type="log4net.Appender.EventLogAppender">
<ApplicationName value="IPserver" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%thread] %message
(%logger{1})" />
</layout>
<Threshold value="INFO" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
<appender-ref ref="EvLog" />
</root>
</log4net>
I tried to complete rewrite this config into C# code:
private readonly log4net.Appender.ConsoleAppender AppConsole;
private readonly log4net.Appender.RollingFileAppender AppFile;
private readonly log4net.Appender.EventLogAppender AppEvlog;
private log4net.Repository.Hierarchy.RootLogger rootLog;
//XmlConfigurator.Configure(new
System.IO.FileInfo(IPserverCore.IPserver.GetAppPath() + "log4net.config"));
//xml configurator replaced by code
AppConsole = new log4net.Appender.ConsoleAppender();
AppConsole.Layout = new log4net.Layout.PatternLayout("%date{HH:mm:ss,fff}
%5level [%thread] %message%n");
AppConsole.Threshold = log4net.Core.Level.Debug;
AppFile = new log4net.Appender.RollingFileAppender();
AppFile.AppendToFile = true;
AppFile.Layout = new log4net.Layout.PatternLayout("%date{dd-MM-yyyy
HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n");
AppFile.File = "Service.log";
AppFile.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date;
AppFile.Threshold = log4net.Core.Level.Debug;
AppEvlog = new log4net.Appender.EventLogAppender();
AppEvlog.Layout = new log4net.Layout.PatternLayout("[%thread] %message
(%logger{1})");
AppEvlog.ApplicationName = "IPserver";
AppEvlog.Threshold = log4net.Core.Level.Info;
rootLog = new
log4net.Repository.Hierarchy.RootLogger(log4net.Core.Level.Info);
rootLog.AddAppender(AppConsole);
rootLog.AddAppender(AppFile);
rootLog.AddAppender(AppEvlog);
//----
log = LogManager.GetLogger(typeof(IPservice));
Log.Info("Start"); // no log produced here...
rootLog.RemoveAppender(AppFile); // disable file logging
...
But after rewriting aplication doesn't create any logs....
Did I miss some settings or am I complete wrong?
Thanks for any suggestions
Radovan Raszka
But when I tried the reverse strategy (set Threshold to OFF in config file and
change to DEBUG when needed), I noticed that empty log file (Service.log in my
configuration) is created (file size = 0 bytes).
Can this feature be disabled?
I think it would be great to add some samples of programatic configuration into
SDK documentation - current documentation is completely out of any example.
Radovan
________________________________
Od: Ron Grabowski [ mailto:rongrabowski@xxxxxxxxx]
Odesláno: pá 3.8.2007 4:51
Komu: Log4NET User
Předmět: Re: Disable/enable appender for all loggers
Instead of removing the appender you could just set its threshold to OFF then
when you want to enable it again you can set it back to DEBUG:
// untested
public static void SetThreshold(string appenderName, Level threshold)
{
foreach (AppenderSkeleton appender in
LogManager.GetRepository().GetAppenders())
{
if (appender.Name == appenderName)
{
appender.Threshold = threshold;
appender.ActivateOptions();
break;
}
}
}
----- Original Message ----
From: Radovan Raszka <raszka@xxxxxxxx>
To: log4net-user@xxxxxxxxxxxxxxxxxx
Sent: Friday, July 27, 2007 2:23:05 AM
Subject: Disable/enable appender for all loggers
Disable/enable appender for all loggers Hello,
I am using three appenders in my log4net configuration (see bellow). But I need
programatically disable and reenable RollingFile appender at certain
situations. Is there any simple solution? I tried to use programatic
configuration only.
My config:
<log4net>
<appender name="Console"
type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name
and line number -->
<conversionPattern value="%date{HH:mm:ss,fff}
%5level [%thread] %message%n" />
</layout>
<Threshold value="DEBUG" />
</appender>
<appender name="RollingFile"
type="log4net.Appender.RollingFileAppender">
<appendToFile value="true" />
<file value="Service.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{dd-MM-yyyy
HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n" />
</layout>
<rollingStyle value="Date" />
<Threshold value="DEBUG" />
</appender>
<appender name="EvLog"
type="log4net.Appender.EventLogAppender">
<ApplicationName value="IPserver" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%thread] %message
(%logger{1})" />
</layout>
<Threshold value="INFO" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
<appender-ref ref="EvLog" />
</root>
</log4net>
I tried to complete rewrite this config into C# code:
private readonly log4net.Appender.ConsoleAppender AppConsole;
private readonly log4net.Appender.RollingFileAppender AppFile;
private readonly log4net.Appender.EventLogAppender AppEvlog;
private log4net.Repository.Hierarchy.RootLogger rootLog;
//XmlConfigurator.Configure(new
System.IO.FileInfo(IPserverCore.IPserver.GetAppPath() + "log4net.config"));
//xml configurator replaced by code
AppConsole = new log4net.Appender.ConsoleAppender();
AppConsole.Layout = new log4net.Layout.PatternLayout("%date{HH:mm:ss,fff}
%5level [%thread] %message%n");
AppConsole.Threshold = log4net.Core.Level.Debug;
AppFile = new log4net.Appender.RollingFileAppender();
AppFile.AppendToFile = true;
AppFile.Layout = new log4net.Layout.PatternLayout("%date{dd-MM-yyyy
HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n");
AppFile.File = "Service.log";
AppFile.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date;
AppFile.Threshold = log4net.Core.Level.Debug;
AppEvlog = new log4net.Appender.EventLogAppender();
AppEvlog.Layout = new log4net.Layout.PatternLayout("[%thread] %message
(%logger{1})");
AppEvlog.ApplicationName = "IPserver";
AppEvlog.Threshold = log4net.Core.Level.Info;
rootLog = new
log4net.Repository.Hierarchy.RootLogger(log4net.Core.Level.Info);
rootLog.AddAppender(AppConsole);
rootLog.AddAppender(AppFile);
rootLog.AddAppender(AppEvlog);
//----
log = LogManager.GetLogger(typeof(IPservice));
Log.Info("Start"); // no log produced here...
rootLog.RemoveAppender(AppFile); // disable file logging
...
But after rewriting aplication doesn't create any logs....
Did I miss some settings or am I complete wrong?
Thanks for any suggestions
Radovan Raszka
<<winmail.dat>>