You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by Damian Zembalski <da...@wp.pl> on 2010/08/20 16:23:35 UTC
Set log name in appender of log4net
I have class MyLogger, where I use log4net. How can I modify my appender
to save log in specific logname (I want to set it by parameter logName).
public void AddEntry(string source, string logName, string contextInfo,
string message, EventLogEntryType eventType)
{
log4net.ILog Log = log4net.LogManager.GetLogger(source);
Log.Error(String.Format("Context Info: {0}{1}{2}{3}", contextInfo,
Environment.NewLine, Environment.NewLine, message));
}
<log4net>
<root>
<priority value="ALL" />
<appender-ref ref="EventLogAppender" />
</root>
This is myAppender. Now it writes in common logtype Application.
<appender name="EventLogAppender"
type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger (%property{myContext}) [%level]-
%message%newline" />
</layout>
</appender>
</log4net>
Re: Set log name in appender of log4net
Posted by Matt Emory <re...@gmail.com>.
You can set the filename in the appender to take a property
<appender>
...
<file type="log4net.Util.PatternString value="property{FileName}" />
</appender>
and set it in code via:
log4net.GlobalContext.Properties["FileName"] = logName;
or you can set it in code with something like this if you're dynamically
creating appenders:
log4net.Appender.RollingFileAppender appender=
LogManager.GetRepository().GetAppenders()
.Where(appender=>appender.Name ==
source).FirstOrDefault() as log4net.Appender.RollingFileAppender;
if(appender != null)
{
appender.File = logName;
appender.ActivateOptions();
}
On 8/20/10, Damian Zembalski <da...@wp.pl> wrote:
>
> I have class MyLogger, where I use log4net. How can I modify my appender
> to save log in specific logname (I want to set it by parameter logName).
>
>
>
>
> public void AddEntry(string source, string logName, string contextInfo,
> string message, EventLogEntryType eventType)
> {
>
> log4net.ILog Log = log4net.LogManager.GetLogger(source);
>
> Log.Error(String.Format("Context Info: {0}{1}{2}{3}",
> contextInfo,
> Environment.NewLine, Environment.NewLine, message));
>
> }
>
> <log4net>
> <root>
> <priority value="ALL" />
> <appender-ref ref="EventLogAppender" />
> </root>
>
>
> This is myAppender. Now it writes in common logtype Application.
>
> <appender name="EventLogAppender"
> type="log4net.Appender.EventLogAppender" >
>
> <layout type="log4net.Layout.PatternLayout">
> <conversionPattern value="%logger (%property{myContext}) [%level]-
> %message%newline" />
> </layout>
> </appender>
> </log4net>
>
>
>