我们可以在 log4net %property 中设置字符限制为 10 个字符吗?

Posted

技术标签:

【中文标题】我们可以在 log4net %property 中设置字符限制为 10 个字符吗?【英文标题】:Can we set the characters limited to 10 characters in log4net %property? 【发布时间】:2018-10-18 02:18:20 【问题描述】:

这是我的 threadContext 异常消息属性

log4net.ThreadContext.Properties["excmessage"] = ex.Message;

我想使用 log4net 获取异常消息属性的前 10 个字符。

这是 Log4net.config 中的行:

%propertyexcmessage

【问题讨论】:

不确定是否可以在 log4net 配置中执行此操作,但您可以执行 log4net.ThreadContext.Properties["excmessage"] = ex.Message.Substring(0,Math.Min(ex.Message.Length,10)); 除非您在其他地方记录了完整的错误消息,否则不建议这样做。 @sgmoore 我的日志中有全文消息,但我希望它更短,以便在电子邮件中显示。我希望它使用 log4net。 【参考方案1】:

据我所知,你只能“从头截断”,这意味着你得到了字符串的结尾:

%.10propertyexcmessage

这里是文档的链接: http://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Layout.PatternLayout.html

我建议您填写两个属性:一个带有异常消息,另一个带有截断消息。

【讨论】:

以上是关于我们可以在 log4net %property 中设置字符限制为 10 个字符吗?的主要内容,如果未能解决你的问题,请参考以下文章

log4net 多个记录器 - 属性

MVC如何使用Log4Net进行错误日志记录

log4net记录(转)

Log4net系列一: asp.net 配置 Log4net 之文本格式输出

Log4Net的控制台,WinForm,WebApplication使用

如何以编程方式强制 log4net 释放日志文件以便可以访问它?