如何在保存为文本文件时向 Log4Net 添加参数
How to add parameters to Log4Net while saving as text file
我用log4net.Appender.RollingFileAppender。
我将日志保存到文本文件中。我想自定义属性值。
<log4net debug="true">
<appender name="file" type="log4net.Appender.RollingFileAppender, log4net">
<file value="Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
</log4net>
这是我的 class:
public static class log4netPark
{
private static ILog _logger = null;
private static log4net.ILog Logger
{
get
{
if (_logger == null)
{
_logger = LogManager.GetLogger(typeof(log4netPark));
log4net.Config.XmlConfigurator.Configure();
}
return _logger;
}
}
public static void Info(string Message, LogType tip)
{
Logger.Info(Message);
}
public static void Error(string Message, Exception ex, LogType tip)
{
Logger.Error(Message, ex);
}
}
这样保存到txt文件中
2018-04-05 18:37:23,772 [1] INFO IK_DL.log4netPark [(null)] - 用户已登录。
我尝试将此代码块放入 Info 方法中,但其中任何一个都不起作用:
GlobalContext.Properties["LOG_TYPE"] = 3;
GlobalContext.Properties["name"] = "tryThisOne";
ThreadContext.Stacks["logger"].Push("LoggerNameTrying");
LogicalThreadContext.Properties["&thread"] = 13;
使用AdoNetAppender时,我们可以添加参数。是否可以使用 RollingFileAppender 或我可以使用 codeblockS 来做到这一点?
您必须在格式字符串中提及属性。因此,如果您希望打印 "LOG_TYPE" 属性,请更改您的模式:
<conversionPattern value="... [%property{LOG_TYPE}] - %message%newline" />
感谢@CodeCaster 的帮助。
这就是我在 App.config 上所做的:
<log4net debug="true">
<appender name="file" type="log4net.Appender.RollingFileAppender, log4net">
<file value="Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level [%property{LOGGER}] [%property{LOG_TYPE}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
</log4net>
这是代码部分:
GlobalContext.Properties["LOG_TYPE"] = type.ToString();
GlobalContext.Properties["LOGGER"] = GlobalInfos.User.UserName;
我用log4net.Appender.RollingFileAppender。
我将日志保存到文本文件中。我想自定义属性值。
<log4net debug="true">
<appender name="file" type="log4net.Appender.RollingFileAppender, log4net">
<file value="Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
</log4net>
这是我的 class:
public static class log4netPark
{
private static ILog _logger = null;
private static log4net.ILog Logger
{
get
{
if (_logger == null)
{
_logger = LogManager.GetLogger(typeof(log4netPark));
log4net.Config.XmlConfigurator.Configure();
}
return _logger;
}
}
public static void Info(string Message, LogType tip)
{
Logger.Info(Message);
}
public static void Error(string Message, Exception ex, LogType tip)
{
Logger.Error(Message, ex);
}
}
这样保存到txt文件中
2018-04-05 18:37:23,772 [1] INFO IK_DL.log4netPark [(null)] - 用户已登录。
我尝试将此代码块放入 Info 方法中,但其中任何一个都不起作用:
GlobalContext.Properties["LOG_TYPE"] = 3;
GlobalContext.Properties["name"] = "tryThisOne";
ThreadContext.Stacks["logger"].Push("LoggerNameTrying");
LogicalThreadContext.Properties["&thread"] = 13;
使用AdoNetAppender时,我们可以添加参数。是否可以使用 RollingFileAppender 或我可以使用 codeblockS 来做到这一点?
您必须在格式字符串中提及属性。因此,如果您希望打印 "LOG_TYPE" 属性,请更改您的模式:
<conversionPattern value="... [%property{LOG_TYPE}] - %message%newline" />
感谢@CodeCaster 的帮助。
这就是我在 App.config 上所做的:
<log4net debug="true">
<appender name="file" type="log4net.Appender.RollingFileAppender, log4net">
<file value="Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level [%property{LOGGER}] [%property{LOG_TYPE}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="file" />
</root>
</log4net>
这是代码部分:
GlobalContext.Properties["LOG_TYPE"] = type.ToString();
GlobalContext.Properties["LOGGER"] = GlobalInfos.User.UserName;