.net log4net

添加依赖

在这里插入图片描述

配置

App.config 添加 log4net 配置
在这里插入图片描述
内容如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!--log4net配置-->
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
  </configSections>
  <!--log4net配置-->
  <log4net>
    <!-- 日志默认值节点 -->
    <root>
      <!-- 默认日志对象级别 -->
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="all" />
      <!-- 默认日志记录方式 ref为<appender>节点的name属性-->
      <!-- <appender-ref ref="MyColoredConsoleAppender"/> -->
      <appender-ref ref="MyRollingFileAppender" />
    </root>

    <logger name="logger.file.debug">
      <level value="DEBUG" />
      <appender-ref ref="MyRollingFileAppender" />
    </logger>

    <!-- AdoNetAppender:利用ADO.NET记录到数据库的日志。ConsoleAppender:将日志输出到控制台。RollingFileAppender:将日志以回滚文件(重复操作原始文件)的形式写到文件中。-->
    <!-- 控制台显示日志 -->
    <!-- ILog log = LogManager.GetLogger(typeof(MainWindow)); -->
    <appender name="MyColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <!-- 设置不同级别控制台显示的不同颜色 -->
      <mapping>
        <level value="INFO" />
        <foreColor value="Green" />
      </mapping>
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <!-- 记录的格式。 -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{HH:mm:ss,fff} [%-5level] %m %n" />
      </layout>
      <!-- 过滤器type有如下几种类型
      log4net.Filter.DenyAllFilter        丢弃所有日志事件。
      log4net.Filter.LevelMatchFilter      准确匹配事件等级。
      log4net.Filter.LevelRangeFilter      匹配一个范围的等级。
      log4net.Filter.LoggerMatchFilter    匹配一个日志器名字的开始。
      log4net.Filter.PropertyFilter        匹配指定属性名称的子字符串。
      log4net.Filter.StringMatchFilter    匹配事件消息的子字符串。
      -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <!-- 控制输出日志的级别范围 -->
        <param name="LevelMin" value="Info" />
        <param name="LevelMax" value="Error" />
      </filter>
    </appender>

    <!-- 文件形式记录日志-Debug -->
    <appender name="MyRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件-->
      <param name="File" value="F:\projectpath\blocks_editor\blocks_editor\logs\" />


      <!--是否是向文件中追加日志-->
      <param name="AppendToFile" value="true" />

      <!--记录日志写入文件时,不锁定文本文件-->
      <!--<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />-->
      <!--Unicode编码-->
      <!--<Encoding value="UTF-8" />-->
      <!--最多产生的日志文件数,value="-1"为不限文件数-->
      <!--<param name="MaxSizeRollBackups" value="10" />-->
      <!--log保留天数-->
      <param name="MaxSizeRollBackups" value="-1" />

      <!--日志文件名是否是固定不变的(是否只写到一个文件中)-->
      <param name="StaticLogFileName" value="false" />

      <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]日志文件名格式为:2008-08-31.log -->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
      <!--<param name="DatePattern" value="yyyy-MM-dd/"-ReflectionLayout.log=""""  />
      <param name="DatePattern" value="yyyyMMdd/yyyyMMdd"-TimerServer.log""  />
      <param name="DatePattern" value="yyyyMMdd/"TimerServer/TimerServer.log""  />-->

      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />

      <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
      <param name="maximumFileSize" value="500KB" />

      <!--记录的格式。-->
      <layout type="log4net.Layout.PatternLayout">
        <!--
        %d, %date     :表示当然的时间
      %p, %level    :表示日志的级别
      %c, %logger   :表示日志产生的主题或名称,通常是所在的类名,便于定位问题
      %m, %message  :表示日志的具体内容
      %n, %newline  :换行
        %exception    :表示异常信息
        -->
        <param name="ConversionPattern" value="%d [%t] %-5p %c:%L - %m  %n" />
      </layout>
    </appender>
  </log4net>
  
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

修改AssemblyInfo.cs文件,在最后添加如下代码

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

使用

在类中引用

// typeof(类名) , 可以在日志里面显示类信息
readonly static ILog log = LogManager.GetLogger(typeof(MainWindow));
log.Info("打开新建连接窗口");

生成的日志如下:

2021-02-16 03:04:23,324 [1] ERROR blocks_editor.model.preferences.maven.MavenSettings:49 - 查找路径为:maven.maven.offline132 , 查找节点:maven.maven.offline132 失败  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值