欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中四步轻松使用log4net记录本地日志的方法

程序员文章站 2024-02-12 09:23:16
在这里,记录我在项目中使用log4net记录本地日志的步骤。在不会之前感觉很难,很神秘,一旦会了之后其实没那么难。其实所有的事情都是一样的,下面我就分享一下我使用log4n...

在这里,记录我在项目中使用log4net记录本地日志的步骤。在不会之前感觉很难,很神秘,一旦会了之后其实没那么难。其实所有的事情都是一样的,下面我就分享一下我使用log4net的经验。

第一步:首先从visual studio中的nuget包管理中搜索下载 log4net dll文件 如下图:

C#中四步轻松使用log4net记录本地日志的方法

C#中四步轻松使用log4net记录本地日志的方法

选择安装的项目(哪个类库中需要记录日志就勾选上)

第二步:打开配置文件 winfrom就是 app.config web就是 web.config 将以下配置信息加入

<configsections>
 <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler, log4net" />
</configsections>
<log4net>
 <logger name="sysrflogger">
 <level value="debug" />
 <appender-ref ref="sysrfappender" />
 </logger>
 <logger name="debugrflogger">
 <level value="debug" />
 <appender-ref ref="debugappender" />
 </logger>
 <logger name="msglogger">
 <level value="debug" />
 <appender-ref ref="msgappender" />
 </logger>
 <logger name="operinfologger">
 <level value="debug" />
 <appender-ref ref="operinfoappender" />
 </logger>
 <appender name="sysrfappender" type="log4net.appender.rollingfileappender">
 <file value="logs\syslog.log" />
 <appendtofile value="true" />
 <rollingstyle value="date" />
 <preservelogfilenameextension value="true" />
 <datepattern value="yyyymmdd" />
 <layout type="log4net.layout.patternlayout">
  <conversionpattern value="%date [%thread] %-5level %logger [%property{ndc}] - %message%newline" />
 </layout>
 </appender>
 <appender name="debugappender" type="log4net.appender.rollingfileappender">
 <file value="logs\sysdebuglog.log" />
 <appendtofile value="true" />
 <rollingstyle value="date" />
 <preservelogfilenameextension value="true" />
 <datepattern value="yyyymmdd" />
 <layout type="log4net.layout.patternlayout">
  <conversionpattern value="%date [%thread] %-5level %logger [%property{ndc}] - %message%newline" />
 </layout>
 </appender>
 <appender name="msgappender" type="log4net.appender.rollingfileappender">
 <file value="logs\messagelog.log" />
 <appendtofile value="true" />
 <rollingstyle value="date" />
 <preservelogfilenameextension value="true" />
 <datepattern value="yyyymmdd" />
 <layout type="log4net.layout.patternlayout">
  <conversionpattern value="%date [%thread] %-5level %logger [%property{ndc}] - %message%newline" />
 </layout>
 </appender>
 <appender name="operinfoappender" type="log4net.appender.adonetappender">
 <buffersize value="1" />
 <connectiontype value="system.data.sqlclient.sqlconnection, system.data, version=4.0.30319.18020, culture=neutral, publickeytoken=b77a5c561934e089" />
 <commandtext value="insert into log_useroperlog ([id],[date],[user],[flag],[operinfo],[operflag],[operresult],[message]) values (@id,@log_date, @user, @flag, @operinfo,@operflag, @operresult, @message)" />
 <parameter>
  <parametername value="@id" />
  <dbtype value="string" />
  <size value="36" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{id}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@log_date" />
  <dbtype value="datetime" />
  <layout type="log4net.layout.rawtimestamplayout" />
 </parameter>
 <parameter>
  <parametername value="@user" />
  <dbtype value="string" />
  <size value="64" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{user}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@flag" />
  <dbtype value="int32" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{flag}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@operinfo" />
  <dbtype value="string" />
  <size value="255" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{operinfo}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@operflag" />
  <dbtype value="string" />
  <size value="32" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{operflag}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@operresult" />
  <dbtype value="string" />
  <size value="255" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{operresult}" />
  </layout>
 </parameter>
 <parameter>
  <parametername value="@message" />
  <dbtype value="string" />
  <size value="4000" />
  <layout type="nt.multithreadingtaskservice.log.layout.useroperlayout,nt.multithreadingtaskservice.log">
  <param name="conversionpattern" value="%property{message}" />
  </layout>
 </parameter>
 </appender>
 <root>
 <level value="debug" />
 <appender-ref ref="sysrfappender" />
 </root>
</log4net>

以上节点具体参数这里不做解释,可以上网查询帮助文档

注意:这两段xml要放在configuration 节点下靠前

C#中四步轻松使用log4net记录本地日志的方法

第三步:打开项目assemblyinfo.cs文件(ui层)

C#中四步轻松使用log4net记录本地日志的方法

加入:[assembly: log4net.config.xmlconfigurator(configfile = "web.config", watch = true)]

C#中四步轻松使用log4net记录本地日志的方法

第四步:在需要记录日志的cs文件中初始化: private ilog _log = logmanager.getlogger("ticketface");

C#中四步轻松使用log4net记录本地日志的方法

一般常用以下几个方法:

_log.error();
_log.debug();
_log.info();

最后运行项目然后在以上配置文件中找到路径去文件夹里看看就生成了日志文件了。

C#中四步轻松使用log4net记录本地日志的方法

注意:这里日志是以天为单位记录 如下:

C#中四步轻松使用log4net记录本地日志的方法

以上这篇c#中四步轻松使用log4net记录本地日志的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。