在log4net的appender中设置日志名称

2024-02-18

我有 MyLogger 类,我在其中使用 log4net。如何修改我的附加程序以将日志保存在特定的日志名中(我想通过参数 logName 设置它)。

public void AddEntry(string source, string logName, string contextInfo, string message, EventLogEntryType eventType)
        {

             log4net.ILog Log = log4net.LogManager.GetLogger(source);

             Log.Error(String.Format("Context Info: {0}{1}{2}{3}", contextInfo, Environment.NewLine, Environment.NewLine, message));

        }

<log4net>
  <root>
    <priority value="ALL" />
     <appender-ref ref="EventLogAppender" />
  </root>

这是我的Appender。现在它以通用日志类型应用程序写入。

  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%logger (%property{myContext}) [%level]- %message%newline" />
    </layout>
  </appender>
</log4net>

我想你正在寻找的是这样的:

<param name="LogName" value="MyLog" />

可以找到更多信息here http://geekswithblogs.net/TimH/archive/2006/04/13/75063.aspx。如果你做这样的事情,你可能想看看这个问题 https://stackoverflow.com/questions/3412463/description-for-event-id-from-source-cannot-be-found/3414029#3414029以及。基本上,这是关于注册您的应用程序以便事件日志了解它。

Edit(通过代码配置):

没有测试过,但这应该可以解决问题:

foreach (AppenderSkeleton appender in this.Logger.Repository.GetAppenders())
{
    var eventlogAppender = appender as EventLogAppender;
    if (eventlogAppender != null)
    {
        eventlogAppender.LogName = "MyLog";
        eventlogAppender.ActivateOptions();
        break;
    }
 }

您可以添加一些测试来验证是否只有一个 EventLogAppender,但您可能不需要这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在log4net的appender中设置日志名称 的相关文章

随机推荐

  • Flutter - 在 CustomPainter 上获取触摸输入

    我有一个简单的 CustomPaint CustomPainter 来绘制一段圆 代码如下 我读到我无法使用 GestureDetector 因为它不是一个合适的小部件 那么获取输入的最佳方式是什么 我将把一堆片段放在一起 所以我需要像素精
  • 页面上的 WPF KeyDown 事件

    我有一个NavigationWindow with Page 页面 XAML
  • 如何制作符号表

    我们的任务是制作一个编译器 我们已经进行了词法和语法分析 但我们仍停留在中间代码的生成上 我们意识到我们必须实现一个符号表才能进行中间代码生成 但我们不知道如何做到这一点以及它包含什么 给出下面的代码 符号表应该包含什么 该代码是用教育语言
  • 选择器 - 在 jQuery 中选择页面上的所有表格

    假设我在嵌入式 div 的各个级别的页面上有多个表 没有 ID 或名称 我的选择器会是什么 如果可能的话 来选择所有表 无论它位于页面上的哪个位置 并根据第一行中第一个单元格的内容迭代或过滤表 你可以简单地使用 table 作为你的选择器
  • SQL Server:Oracle 中的 RowVersion 等效项

    Oracle 有类似的数据类型吗SQL服务器RowVersion http technet microsoft com en us library ms182776 aspx 当您插入或更新一行时 相应的版本列 其类型为RowVersion
  • int gl_VertexID 导致 Three.js 出错

    我一直在使用内置顶点索引的 gl VertexID 时遇到问题 通过使用in 与 Three js 一起使用 我不知道为什么 因为文档说它适用于所有版本的 OpenGL http www opengl org sdk docs mangls
  • Python - csr_matrix 的数据结构

    我正在研究TFIDF 我用过tfidf vectorizer fit transform 它返回一个 csr matrix 但我无法理解结果的结构 数据输入 文件 天空是蓝色的 太阳是明亮的 太阳在 天空很亮 我们可以看到灿烂的太阳 明亮的
  • 无法读取快速路由器中未定义的“get”属性

    我的代码如下所示 app js const app express const itemsRouter require routes items js app use bodyParser urlencoded extended true
  • JPA 1.0 错误:名称不是可识别的实体或标识符。已知实体名称:[]

    当我尝试执行简单的 JPA 1 0 代码时 出现以下异常 可能是什么原因 5453 DevPQRWDPBSSPersist WARN P 351601 O 0 CT openjpa Enhance This configuration di
  • 在 JavaScript 中将 Unix 时间戳转换为时间

    我将时间作为 Unix 时间戳存储在 MySQL 数据库中 并将其发送到一些 JavaScript 代码 我怎样才能从中抽出时间呢 例如 在HH MM SS format let unix timestamp 1549312452 Crea
  • 如何使用快捷方式在Android Studio中自动导入必要的类?

    我刚刚切换到 Android Studio 0 5 1 这里的事情进展得很慢 因为没有任何东西可以正常工作 如何使用快捷方式导入必要的类 我的意思是像这样的 import android os Bundle import android s
  • 有没有办法从 EF 中的字符串值数组动态生成多个点赞?

    我设置了一个搜索文本框 其中搜索将单独抓取每个单词并使用 包含 搜索字段 有没有办法通过 Contains 搜索字符串数组 Keep in mind that the array would be generated dynamically
  • 是否可以在 Travis 中启动 Selenium 服务器?

    我想在 Travis 中运行完整的 Selenium 测试 但我似乎无法启动服务器 我的 Travis YAML 文件 language node js node js 6 2 before script npm install selen
  • 改进 Scala 的 JVM [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何阻止netty在服务器套接字上监听和接受

    有没有办法告诉 netty 停止侦听和接受套接字上的新连接 但完成当前连接上任何正在进行的工作 你可以直接关闭ServerSocketChannel由创建的ChannelFactory 通常 ServerSocketChannel由返回Se
  • 自动填充到最后一个相邻单元格的宏

    我正在尝试使用 Excel 中的宏记录器来记录宏来填充一列单元格 但是因为每次填充的单元格数量不同 所以它要么填充得太短 要么填充得太长 这似乎是因为宏标识单元格范围及其固定 无论如何 我可以让它填充到最后一个填充的相邻单元格吗 例如 自动
  • 如何将安装(框架+应用程序)打包到一个可执行文件中?

    我想创建一个文件 setup exe 其中包含我用 C 开发的一个应用程序以及 Net Framework 4 0 的安装程序 这个想法是 当我执行 setup exe 时 它会检查计算机上是否安装了 net Framework 4 0 如
  • pd.merge() 和 dataframe.merge() 之间的区别

    我想知道当你合并时有什么区别pd merge versus dataframe merge 示例如下 pd merge dataframe1 dataframe2 and dataframe1 merge dataframe2 我们有两个函
  • 将纬度和经度值(度)转换为 Double 。爪哇

    我正在尝试将以度为单位的纬度和经度值转换为双倍 价值观是这样的 latitude 25 21 N longitude 55 23 E When i try to log this in android it is coming like t
  • 在log4net的appender中设置日志名称

    我有 MyLogger 类 我在其中使用 log4net 如何修改我的附加程序以将日志保存在特定的日志名中 我想通过参数 logName 设置它 public void AddEntry string source string logNa