我在 ac# 应用程序中有以下 log4net 语句:
log.Info(CultureInfo.InvariantCulture, m => m(notice));
字符串内容为:
notice = "Checking: 645: Bp $B!!:{4V7r;K Bp $B$D$^$M$5$S (B <xxx@xxxxxx. Co. Jp> (B <xxxxx@xxxxxxx.Com>)"
导致此异常:
[Common.Logging.Factory.AbstractLogger+FormatMessageCallbackFormattedMessage]System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小。在 System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) 在 System.String.Format(IFormatProvider provider, String format, Object[] args) 在 Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.FormatMessage (字符串格式,Object[] args)
如果您在字符串中注意到(在这种情况下,这完全是一块垃圾),则有一个括号“{”。我相当确定这是导致异常的原因。我能做些什么来避免这种情况?以某种方式转义字符串?
这是一个相当无害的异常,只是它显示在日志文件中并且会分散注意力。