Winforms 日志框架

2024-02-19

我正在编写一个 WinForms 应用程序。我需要将信息记录到文件中。通常我使用log4net http://logging.apache.org/log4net/用于记录,但由于限制,我无法添加引用。我无法添加外部对我的项目的引用,因为我必须部署单个可执行文件。

有没有内置的日志框架在 .NET 中,这样我就可以在不添加外部 dll 的情况下登录文件?

P.S:当然我不想打开流并手动写入。


是的系统.诊断.TraceListener http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener.aspx班级。您需要定义 TRACE 常量才能使其工作,但您可以通过配置 app.config 使用许多内置的跟踪侦听器:

  • ConsoleTraceListener 类 http://msdn.microsoft.com/en-us/library/system.diagnostics.consoletracelistener
  • EventLog TraceListener 类 http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlogtracelistener
  • XmlWriterTraceListener 类 http://msdn.microsoft.com/en-us/library/system.diagnostics.xmlwritertracelistener
  • TextWriterTraceListener 类 http://msdn.microsoft.com/en-us/library/system.diagnostics.textwritertracelistener

如果您想写入文件,app.config 看起来像这样,您还可以添加很多过滤器:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="yourName" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\mylogfile.txt" />
          </listeners>
        </trace>
    </system.diagnostics>
</configuration>

及用法:

Trace.TraceError("There's been an error captain: {0}", e);
Trace.TraceWarning("The system broke but don't worry.");
Trace.TraceInformation("Starting up the engines.");

就我个人而言,如果可以避免的话,我不会写入文本文件,事件日志是一个更好的位置,因为您可以排序、过滤,日志会自动清除,并且不会遇到文件锁定问题。

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

Winforms 日志框架 的相关文章

随机推荐

  • 如何使div相对于父级的高度为100%?

    我坚持下面这样的事情 我需要将右上 div 设为 100 高度 其背景颜色将覆盖主 div 的整个高度 div style width 100 margin auto text align left border 1px solid 628
  • Magento 2 标签翻译显示大括号

    显示双花括号之间的多个翻译的标签 我在 Magento 2 的前端和后端都遇到这个问题 这是我到目前为止所尝试过的 清除并刷新缓存 重新部署静态内容 将 Magento 2 2 5 更新至 2 2 6 请查看图片以获取更多信息 Magent
  • 如何获取 JavaFX 中某个阶段的关闭事件?

    在JavaFX中 如果用户单击阶段的关闭按钮 X 最右上方的十字 如何获取事件 我希望我的应用程序在窗口关闭时打印调试消息 System out println Application Close by click to Close But
  • 为什么表别名通常都是小写?

    我总是这样看例子 但为什么呢 这是一个好的做法吗 因此它们与查询的其余部分 通常以大写形式编写 不同 至于这是否是最佳实践 如果您以全部大写形式编写查询 那么它肯定会使您的查询更易于阅读和理解
  • 如果代码中没有 return 语句,函数在 C 程序中返回什么

    我做了一个关于如何在 C 中递归地反转单链表的函数 功能如下 struct node reverseSLL2 struct node p struct node temp struct node temp1 if p NULL temp1
  • NEST 查询精确文本匹配

    我正在尝试编写一个 NEST 查询 该查询应根据精确的字符串匹配返回结果 我在网上研究过 有关于使用术语 匹配 匹配短语的建议 我已经尝试了所有这些 但我的搜索返回的结果包含部分搜索字符串 例如 在我的数据库中 我有以下几行电子邮件地址 电
  • 如何实施xgboost增量训练?

    问题是由于列车数据大小 我的列车数据无法放入 RAM 中 所以我需要一种方法 首先在整个训练数据集上构建一棵树 计算残差构建另一棵树等等 就像梯度提升树一样 显然如果我打电话model xgb train param batch dtrai
  • Rails 选择 GROUP 中 COUNT 最高的对象

    目标是选择Store其中一个Coupon最常用于 目前 我有这个 并且它有效 分解以供解释 coupon rb has many redemptions has and belongs to many stores def most pop
  • SML 和函数式编码风格

    我开始学习标准机器学习编程语言 https www coursera org course proglang course 在第一个作业中 我尝试编写一个函数is older需要两个日期并评估为true or false 它评估为true如
  • 使用 JavaScript 将 CSV 转换为 XML

    我是 javascript 新手 我需要将 csv 字符串数据转换为 xml 如下所示 CSV 数据 product pakageing qty mno 100ML 200 pqr 400ML 300 abc 150ML 100 XML 应
  • 使用 chromecast 从 IP 摄像机进行流式传输

    我正在尝试通过我的 Android 设备通过 IP 摄像头进行流传输 我已经从发布的代码中编辑了 URLGitHub https github com googlecast cast android sample当我尝试从摄像机的 IP 地
  • log4net 用于 IIS 中托管的 WCF 服务库

    对于一个项目 我有一个 WCF 服务库 目前非常简单 它通过 WCF 服务网站项目托管在 IIS 7 5 中 对于该 WCF 服务库 我需要 log4net 来记录一些重大事件 但启动并访问网站后 不会创建任何日志文件 这是我的配置详细信息
  • 返回 std::map 值的地址是否安全?

    我有一个std map
  • Haskell:instance Functor ((->) r) 的意义是什么

    我承认 我的问题可能源于缺乏知识 而且比较模糊 但我试着去理解 有一些疑问 却无法解决 那么GHC Base有这样的定义 它的意义是什么 instance Functor gt r where fmap 从编程语言的角度来看 我们有真正的基
  • 模拟多次调用的静态方法

    我有一个静态方法 在多个地方使用 主要是在静态初始化块中 它接受一个 Class 对象作为参数 并返回该类的实例 我只想在特定的 Class 对象用作参数时模拟此静态方法 但是 当从其他地方使用不同的 Class 对象调用该方法时 它会返回
  • 使用从文件读取的字符串在 Typescript 中进行字符串插值

    我读过关于模板字符串 http basarat gitbooks io typescript content docs template strings html在打字稿中 我想知道当我从这样的文件中读取字符串时是否可以使用它们 let x
  • 什么时候应该对

    假设我有这样的 HTML 结构 div class a div class floated left div div class floated left div div 我注意到如果我不设置overflow hidden to a 那么
  • Mono.Cecil:从其他程序集中调用基类的方法

    如何按名称获取对基类方法的 MethodReference 我试过了 type BaseType Resolve Methods 如果我将包含基类的 dll 添加到 assemblyresolver 它将返回方法 但是如果我使用添加呼叫 M
  • 在具有多个接口的服务器上接收多播(linux)

    要在我的非默认 NIC dvb 上接收多播 我执行以下操作 打开套接字 AF INET SOCK DGRAM 在 DVB 接口上使用 IP ADD MEMBERSHIP 加入多播地址 绑定多播地址 请注意 一个常见的错误是绑定 0 0 0
  • Winforms 日志框架

    我正在编写一个 WinForms 应用程序 我需要将信息记录到文件中 通常我使用log4net http logging apache org log4net 用于记录 但由于限制 我无法添加引用 我无法添加外部对我的项目的引用 因为我必须