我有一个wcf服务,它调用sql数据库中的存储过程。我使用log4net进行日志记录。
如果从数据库中抛出任何sql异常,我可以从服务中的异常对象获取sql异常属性,如过程名称,错误行,严重性等。
但有没有办法使用log4net直接在文件中记录这些属性?
答案 0 :(得分:0)
请按照以下步骤操作:
将以下代码添加到全局声明
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
将此代码添加到构造函数
XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\Config\Log4Net.config"));
将以下内容复制到配置标记
<configSections>
section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\Temp\\errLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<level value= "ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
&#13;
添加以下行
log.Error(ex)