【发布时间】:2016-06-04 20:42:03
【问题描述】:
我正在使用如下的 log4net.Info 方法,
public static void Audit(this ILog logger, string name, string field)
{
GlobalContext.Properties["Name"] = name;
logger.Info(string.Format(CultureInfo.InvariantCulture, @"AUDIT: {0}", field));
}
而我的log4net配置是,
<appender name="DatabaseAuditLogAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=localt;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True" />
<commandText value="INSERT INTO [dbo].[__AuditLog]
([CreateOnDateTime],[CreateByUserId],[Name],[Field])
VALUES (@logdate, @CreateByUserId, @Name, @Field)" />
<parameter>
<parameterName value="@logdate" />
<dbType value="DateTime2" />
<size value="-1" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@CreateByUserId" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{CreateByUserId}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Name" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Name}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Field" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<threshold value="INFO" />
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="AUDIT:" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
这里写日志的时候是这样写的,
Audit: Some messages
我只想从消息中删除“审核:”文本,请帮助我。
【问题讨论】:
-
将
Audit方法中的第二行更改为logger.Info(string.Format(CultureInfo.InvariantCulture, @"{0}", field)); -
您好 PasioniaX,感谢您的回复。当消息以 'Audit:' 开头时,我将审核信息插入到另一个表中。请看配置。
标签: logging log4net log4net-appender