C#Log4Net使用

    public interface IBillLog
    {
        /// <summary>
        /// 记录登陆入单客户
        /// </summary>
        /// <param name="dateTime"></param>
        /// <param name="billOperator"></param>
       // int LogOperator(DateTime dateTime, BillOperator billOperator, EnumLogOperatorType logOperatorType);
        void Fatal(object message, Exception exception);
        void Error(object message, Exception exception);
        void Warn(object message, Exception exception);
        void Info(object message, Exception exception);
        void Debug(object message, Exception exception);

    }


   public class BillLog : IBillLog
    {
      
        private static ILog m_log = LogManager.GetLogger(typeof(BillLog));

        public BillLog() {  }
        #region 委托Log4net来实现不同日志级别打印
        void IBillLog.Fatal(object message, Exception exception)
        {
            m_log.Fatal(message, exception);
        }
        void IBillLog.Error(object message, Exception exception)
        {
            m_log.Error(message, exception);
        }
        void IBillLog.Warn(object message, Exception exception)
        {
            m_log.Warn(message, exception);
        }
        void IBillLog.Info(object message, Exception exception)
        {
            m_log.Info(message, exception);
        }
        void IBillLog.Debug(object message, Exception exception)
        {
            m_log.Debug(message, exception);
        } 
        #endregion
    }


AssemblyInfo.cs中增加

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


log4net.config文件配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net"
    type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"
/>
  </configSections>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingFileAppenderFATAL" />
      <appender-ref ref="RollingFileAppenderERROR" />
      <appender-ref ref="RollingFileAppenderWARN" />
      <appender-ref ref="RollingFileAppenderINFO" />
      <appender-ref ref="RollingFileAppenderDEBUG" />
    </root>
    <!--ALL/FATAL > ERROR > WARN > INFO > DEBUG/OFF-->
    <appender name="RollingFileAppenderFATAL" type="log4net.Appender.RollingFileAppender" >
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value=".\\FatalDir\\Fatal"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="_yyyy.MM.dd&quot;.log&quot;"/>
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="FATAL" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>
   
 
    <appender name="RollingFileAppenderERROR" type="log4net.Appender.RollingFileAppender" >
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value=".\\ErrorDir\\Error"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="_yyyy.MM.dd&quot;.log&quot;"/>
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="ERROR" />
      </filter>
    </appender>


     <appender name="RollingFileAppenderWARN" type="log4net.Appender.RollingFileAppender" >
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value=".\\WarnDir\\Warn"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="_yyyy.MM.dd&quot;.log&quot;"/>
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="WARN" />
        <param name="LevelMax" value="WARN" />
      </filter>
    </appender>


    <appender name="RollingFileAppenderINFO" type="log4net.Appender.RollingFileAppender" >
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value=".\\InfoDir\\Info"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="_yyyy.MM.dd&quot;.log&quot;"/>
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>


    <appender name="RollingFileAppenderDEBUG" type="log4net.Appender.RollingFileAppender" >
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value=".\\DebugDir\\Debug"/>
      <staticLogFileName value="false"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="_yyyy.MM.dd&quot;.log&quot;"/>
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1024KB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="DEBUG" />
      </filter>
    </appender>
  </log4net>
</configuration>

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
log4Net是Apache基金会开发的一款高效、灵活的日志记录框架,广泛应用于.NET生态系统中,支持多种日志输出目标(如文件、数据库、控制台),并提供细粒度的日志级别控制,可帮助开发者监控应用运行状态、调试错误。以下是在C# .NET项目中集成和使用log4Net的步骤: ### 1. 安装log4Net 可以通过NuGet包管理器来安装log4Net。在Visual Studio中,右键点击项目,选择“管理NuGet程序包”,在浏览选项卡中搜索“log4net”,然后安装该包。 ### 2. 配置log4Net 在项目中添加一个`log4net.config`文件,以下是一个简单的配置示例: ```xml <?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logs\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="1MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="RollingFileAppender" /> </root> </log4net> ``` 此配置将日志记录到`logs`文件夹下的`log.txt`文件中,当文件大小达到1MB时会进行滚动备份。 ### 3. 加载配置 在程序启动时加载`log4net`的配置,可在`Program.cs`文件中添加以下代码: ```csharp using log4net; using log4net.Config; using System.IO; class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main() { // 加载log4net配置 var logRepository = LogManager.GetRepository(System.Reflection.Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config")); // 使用日志记录 log.Info("程序启动"); // 其他业务逻辑 } } ``` ### 4. 使用日志记录 在需要记录日志的地方,获取日志记录器并记录不同级别的日志: ```csharp using log4net; public class MyClass { private static readonly ILog log = LogManager.GetLogger(typeof(MyClass)); public void DoSomething() { try { // 业务逻辑代码 log.Debug("执行DoSomething方法"); } catch (System.Exception ex) { log.Error("DoSomething方法出错", ex); } } } ``` ### 日志级别说明 log4Net提供了多种日志级别,从低到高分别为:`ALL`、`DEBUG`、`INFO`、`WARN`、`ERROR`、`FATAL`、`OFF`。可以根据不同的需求选择合适的日志级别进行记录。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值