Logging log4net日志记录到SQL Server数据库
我正在使用log4net将错误记录到SQL Server数据库中。它工作正常,但有一个问题。数据库中的日志表包含一个名为Logging log4net日志记录到SQL Server数据库,logging,log4net,log4net-appender,Logging,Log4net,Log4net Appender,我正在使用log4net将错误记录到SQL Server数据库中。它工作正常,但有一个问题。数据库中的日志表包含一个名为Exception的列,该列从不填充,但所有其他列都会填充。我的配置设置正常,有人能告诉我为什么会发生这种情况吗 这是我的web.config文件中的commandtext部分 commandText value="INSERT INTO Log ([Date], [Thread], [Level], [Logger],[Message], [Exception]) VALUE
Exception
的列,该列从不填充,但所有其他列都会填充。我的配置设置正常,有人能告诉我为什么会发生这种情况吗
这是我的web.config
文件中的commandtext部分
commandText value="INSERT INTO Log ([Date], [Thread], [Level], [Logger],[Message], [Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
如果要填充错误列,则需要将异常作为参数提供给log.error方法:
try{
throw new Exception();
catch (Exception ex){
_log.Error("error msg", ex);
}
见
错误(对象)记录具有错误级别的消息对象
错误(对象,异常)记录包含错误的消息对象
级别,包括作为
参数。
ErrorFormat(字符串、对象)记录格式化的
具有错误级别的消息字符串
ErrorFormat(String,Object[])记录格式化的消息字符串
具有错误级别
ErrorFormat(IFormatProvider,
字符串,对象[])记录带错误的格式化消息字符串
水平
ErrorFormat(字符串、对象、对象)记录
具有错误级别的格式化消息字符串
ErrorFormat(字符串、对象、对象、对象)记录格式化的
具有错误级别的消息字符串
您需要使用正确的重载,即
void Error(Object message,Exception exception)
当您使用
this.\u log.ErrorFormat(ex.Message)
时,您没有将异常传递给log4net,而是将消息作为字符串传递给log4net。如何记录异常?您需要确保使用的是void Error(对象消息,异常异常)
方法;