gpt4 book ai didi

logging - log4net:如何自定义要存储的数据

转载 作者:行者123 更新时间:2023-12-04 01:53:02 26 4
gpt4 key购买 nike

我的网站公开了几个不同的网络服务。这是我想要达到的目标:

  • 将DB中的所有数据存储在一张表中;
  • 每条记录都应该有带有“服务/组件”名称的文本字段;
  • 调用任何方法时都需要存储所有的收入参数;
  • 如果发生任何异常,则有必要存储所有结果参数和错误消息。

  • 我的初衷是使用log4net。但是从这些演练 (http://sadi02.wordpress.com/2008/09/15/how-to-store-log-in-database-using-log4net/, http://logging.apache.org/log4net/release/config-examples.html ) 我没有看到将自定义数据添加到日志表中的简单方法。

    将 log4net 用于此类目的是否可行?如何更改日志表架构以存储自定义数据?我应该修改 log4net 库的源代码吗?编写自定义功能来存储此类数据可能会更好?

    谢谢。

    最佳答案

    根据这个discussion ,这个过程非常简单。

    第一步是将 appender 声明中的命令文本更新到您的配置文件中:

    <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception],[MyColumn]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception,@MyColumn)"/>        

    下一步是为自定义列添加新的参数定义:
    <parameter>
    <parameterName value="@MyColumn "/>
    <dbType value="String" />
    <size value="255" />
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%property{MyColumn}" />
    </layout>
    </parameter>

    最后,您可以通过 log4net 的 GlobalContext 属性访问该值:
    log4net.GlobalContext.Properties["MyColumn"] = "MyValue";
    log.Debug("My message");

    您可以根据需要对任意多个字段执行此操作。

    关于logging - log4net:如何自定义要存储的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308498/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com