StringFormat 期间出现异常:输入字符串的格式不正确

Exception during StringFormat: Input string was not in a correct format

我正在使用 log4net 在我的 .net 应用程序中记录信息,它按预期工作,但它没有记录以下字符串

{"SuccessfulMessage":null,"FailedMessage":null,"InvalidMessage":"ID 1234 are invalid","PendingMessage":null,"AlreadyProcessedMessage":null,"InvalidIDMessage":null,"InvalidOperatorMessage":null}

当我尝试记录上面的字符串时,它记录了以下内容。

<log4net.Error>Exception during StringFormat: Input string was not in a correct format. <format>{"SuccessfulMessage":null,"FailedMessage":null,"InvalidMessage":"ID 1234 are invalid","PendingMessage":null,"AlreadyProcessedMessage":null,"InvalidIDMessage":null,"InvalidOperatorMessage":null}</format><args>{}</args></log4net.Error>

我正在使用下面的代码来写日志。

private ILog AppLogger { get; set; }
AppLogger.InfoFormat(message, args)

Log4net 版本: 2.0.8.0

这个字符串格式的异常似乎是由于 { 和 } 字符引起的,您可能需要将它们转义或用另一个合适的字符替换它们。

@ruzgarustu 的回答帮助我确定了问题的根本原因。

我通过以下代码解决了这个问题。所以基本上我已经删除了括号。

AppLogger.InfoFormat(message.Trim('{', '}'), args);

你使用了错误的方法,使用 AppLogger.Info(message) 而不是 AppLogger.InfoFormat(message, args)