You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5环境下使用log4net无法写入数据库日志如何解决

问题解决方案

  • ConnectionType配置优化
    你当前指定了具体版本号的ConnectionType配置容易因为.NET程序集绑定重定向机制出现加载失败问题,直接移除版本、公钥等限定字段即可,修改后配置如下:

    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data.SqlClient" />
    

    运行时会自动加载你已经通过Nuget安装的4.8.3版本System.Data.SqlClient程序集。

  • Logger调用校验
    你当前配置的DatabaseLogger是命名Logger,只有代码中显式调用LogManager.GetLogger("DatabaseLogger")时才会触发数据库写入操作。如果你需要所有日志都同时写入文件和数据库,可以在log4net.config中增加根Logger配置:

    <root>
      <level value="ALL" />
      <appender-ref ref="JsonFileLogger" />
      <appender-ref ref="DatabaseLogger" />
    </root>
    
  • DateTime参数格式修正
    你当前对log_date参数配置的字符串格式布局容易出现数据库DateTime类型转换失败问题,直接使用log4net原生的RawTimeStampLayout传递DateTime类型参数即可避免转换错误:

    <parameter>
        <parameterName value="@log_date" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
    </parameter>
    
  • 开启内部调试定位问题
    如果以上修改后仍无法写入,开启log4net内部调试日志可直接定位具体错误原因,在log4net配置加载代码前加入以下代码即可:

    log4net.Util.LogLog.InternalDebugging = true;
    

    内部日志会输出到控制台,可直接查看数据库写入环节的具体报错信息。

内容的提问来源于stack exchange,提问作者burakergun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:48:01