log4net(winform)使用方法

2023-05-16

前言:

log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。

第一步:引入组件:引用log4net.dll文件 备注:通过直接引用dll或使用nugit

包管理器中搜索log4net添加引用到项目中

第二步:添加一个log4net.config文件(注意:在这个config文件上点右键属性,让它始终复制或较新复制

日志级别等级

高到底分别为:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <root>
    </root>
    <logger name="Error">
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="InfoLog">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" type="" value="Log/Error/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
        <param name="Header" value="-----------BEGIN-----------" />
        <param name="Footer" value="------------END------------" />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" type="" value="Log/Info/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyyMMdd" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" />
        <param name="Header" value="-----------BEGIN-----------" />
        <param name="Footer" value="------------END------------" />
      </layout>
    </appender>
  </log4net>
</configuration>

第三步:在Properties下的AssemblyInfo.cs文件时加一行:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

第四步:创建类(log4netHelper)

public class log4netHelper
    {
        /// <summary>
        /// 普通日志(消息类)
        /// </summary>
        /// <param name="message">日志内容</param>
        public static void Info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");
            if (log.IsInfoEnabled)
            {
                log.Info(message);
            }
            log = null;
        }
        /// <summary>
        /// 错误日志(错误类)
        /// </summary>
        /// <param name="message">错误日志</param>
        public static void Error(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Error");
            if (log.IsInfoEnabled)
            {
                log.Error(message);
            }
            log = null;
        }
    }

第五步:使用方法

log4netHelper.Info("这是一条普通日志");
log4netHelper.Error("这是一条错误日志");

日志文件打开用记事本notepad或noetpad++,editplus等均可查阅。

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

log4net(winform)使用方法 的相关文章

  • Log4Net停止记录,如何恢复?

    我遇到了 log4net c WinForms 的问题 如果出现短暂故障 例如由于 VMware 快照 网络共享在几秒钟内无法访问 它会停止记录 并且似乎没有记录的方法可以从此类故障中恢复中断 它只是停止记录 直到应用程序重新启动 版本 v
  • log4net AdoNetAppender 截断消息文本

    我遇到一个问题 无论我做什么 我的消息字段都会被截断为大约 42k 这是一个简短的片段来说明我的配置
  • 温莎城堡的内部日志

    如何记录温莎城堡内部日志 例如 如果我错误配置了 Castle 无法加载连接字符串 我想知道当 Castle 尝试解析连接字符串时是否可以记录错误 我正在使用 Log4Net Facility 并且只能查看应用程序日志 而不能查看 Wind
  • log4net的线程安全

    似乎有一些关于log4net是否线程安全的讨论 共识是框架是线程安全的 但appender不是 需要正确使用才能实现线程安全 有人可以对此进行一些说明 并可能给出以线程安全方式使用 RollingFileAppender 的示例吗 是否需要
  • 在受限用户帐户 XP 中运行时,C# 应用程序无法读取/写入管理员创建的文件

    我有一个可供所有用户 管理员或受限用户 在 NET 特别是 C 中使用的应用程序 当应用程序首次启动时 它会在 C Documents and Settings All Users Documents 中创建一些后续启动所需的文件 如果 X
  • Log4net - 如何知道文件何时滚动?

    我有一个由 log4net 创建的日志文件 该文件每小时都会更改 有没有办法知道这个滚动何时发生 就像 log4net 库中的一个事件一样 我可以绑定到该事件 并在触发该事件时执行操作 我不是在寻找代码示例 只是想知道此事件是否存在 以及在
  • Teamcity 无法通过 nuget 安装软件包

    已解决 请参阅评论 我在 team city 有一个项目无法安装所需的软件包 这已经工作了一年多 但本周所有构建都开始失败 我的开发流程如下 我们使用github并使用Visual Studio进行本地开发 我们有一个 Windows te
  • log4net 用于 IIS 中托管的 WCF 服务库

    对于一个项目 我有一个 WCF 服务库 目前非常简单 它通过 WCF 服务网站项目托管在 IIS 7 5 中 对于该 WCF 服务库 我需要 log4net 来记录一些重大事件 但启动并访问网站后 不会创建任何日志文件 这是我的配置详细信息
  • log4net 通过异常参数向数据库表添加完整的堆栈跟踪

    对于 log4net 配置 这是我的参数设置
  • ASP.NET 日志记录 - log4net 或运行状况监控?

    我正在查看 3 5 中的一个新的 asp net 站点 它完全没有错误处理或日志记录 记录和处理错误有哪些好的选择 我在 1 1 框架上使用了 Log4Net 但听说 3 5 中可能有更好的选择 一种选择是 ELMAH 我在这里问了一个关于
  • 程序集未加载 C#

    我有一个项目Common其中包含一个 log4net CustomAppender 我在所有其他项目中引用该项目并在中配置 log4net 附加程序app config 一切都很顺利 除了一个项目在尝试实例化 Appender 时失败了 输
  • 在单独的线程上运行 Log4Net 附加程序

    目前 我有自己的日志系统 其中日志本质上是一个队列 有一个单独的线程侦听该队列并执行所有实际的写入操作 系统处理大量日志消息 文件在几分钟内很容易超过 10 MB 大小 因此在调用线程中进行实际日志记录是不可行的 如果 log4net 已经
  • 如何使用 Windows 中的 log4net xml 配置器使用文件夹位置指定日志文件路径?

    在我的 app config 中我放入
  • Log4Net 可用于 adoappender 的数据库字段 - 似乎还有更多,即 method_name?

    我最近创建了简单的 log4net 数据库表 用于通过 adonet 附加程序进行日志记录 并且它有效 但后来我注意到另一个网站使用额外的字段 看 哇 我很想知道在哪里可以获得可用字段名称的列表 例如 Method name 真的让我思考
  • Log4Net 以编程方式检查 Appender 过滤器的 IsEnabledFor

    我如何以编程方式检查IsEnabledFor is true对于某个附加器过滤器 这是我的配置
  • 无法创建类型“Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4Net”

    我在解决方案中有包含其他类库的 WCF 项目 我使用 nuget 包管理器为需要日志记录的项目添加了 Common Logging 我收到此错误 无法创建类型 Common Logging Log4Net Log4NetLoggerFact
  • C# 项目,编译器抱怨缺少对 log4net 的引用

    我正在使用 Visual Studio 2017 构建一个大型 C 项目 解决方案中有 200 多个项目 在编译其中一个项目时 我遇到了很多错误 如下所示 error CS0012 The type BufferingAppenderSke
  • 从代码中使用 XML 配置 log4net 或 NLog

    最近我一直在从事一个项目 除其他外 我们希望提供一个集中式配置系统 我们使用 WCF Silverlight C 等来创建分布式服务和客户端系统 我们想要配置的事情之一是日志记录 显然 我们可以通过 app config 或单独的日志配置文
  • Log4Net 在单独的配置文件中

    我需要为新项目配置 log4net 当我将所有信息保存在 App config 文件中时 一切都工作得很好 我想把log4net的配置放在一个单独的配置文件中 取App1 config 这是我的 app config 完美运行
  • log4net 未记录到数据库

    我有一个奇怪的问题 我的 log4net 设置没有将任何数据记录到数据库中 也没有引发任何异常来通知问题 我已经在一个名为 Log4net Config 的单独文件中定义了配置设置 并且 已经在程序集中引用了它 请注意 我通过 nuget

随机推荐