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

第一步:首先从Visual Studio中的Nuget包管理中搜索下载 Log4Net dll文件 如下图:

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

第二步:打开配置文件 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 节点下靠前

第三步:打开项目AssemblyInfo.cs文件(UI层)

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

 注意:ConfigFile属性值是当前程序配置文件名WinForm就是App.config Web程序就是:web.config

 第四步:在需要记录日志的cs文件中初始化: private ILog _log = LogManager.GetLogger("TicketFace");

一般常用以下几个方法:

_log.Error();
_log.Debug();
_log.Info();

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

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

WPF中有点小区别:

第三步:打开项目AssemblyInfo.cs文件(UI层)这里的配置注释不要。

在 App.xaml.cs中的的构造函数加入:log4net.Config.XmlConfigurator.Configure();

/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
public App()
{
log4net.Config.XmlConfigurator.Configure();
}
}

  

C#中四步轻松使用log4net记录本地日志的更多相关文章

  1. C#中四步轻松使用log4net记录本地日志(WPF有点小区别)

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

  2. ASP.NET MVC中Log4Net记录错误日志的使用

    第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSection ...

  3. C# 使用Log4Net记录程序日志

    在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...

  4. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  5. java web每天定时执行任务(四步轻松搞定)

    第一步: package com.eh.util; import java.util.Calendar; import java.util.Date; import java.util.Timer; ...

  6. log4net记录系统错误日志到文本文件用法详解

    log4net是一个完全免费开源的插件,可以去官网下载源码. 一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug.崩溃.断网等无法 ...

  7. 学习总结 之 WebApi服务监控 log4net记录监控日志

    在请求WebApi 的时候,我们更想知道在请求数据的时候,调用了哪个接口传了什么参数过来,调用这个Action花了多少时间,有没有人恶意请求.我们可以通过记录日志,对Action进行优化,可以通过日志 ...

  8. WebForm应用log4net记录错误日志——使用线程列队写入

    我的项目结构如下图: 日志帮助类库需要log4net包:工具—NuGet包管理器—管理解决方案NuGet程序包 线程日志帮助类 FlashLogger.cs 代码 using System; usin ...

  9. mvc项目用log4net 记录错误日志

    1.  首先下载lognet 下载地址 http://logging.apache.org/log4net/download_log4net.cgi 2.找到bin文件中的net文件夹  之后看你电脑 ...

随机推荐

  1. commons-pool与commons-pool2连接池

    commons-pool和commons-pool2是用来建立对象池的框架,提供了一些将对象池化必须要实现的接口和一些默认动作.对象池化之后可以通过pool的概念去管理其生命周期,例如对象的创建,使用 ...

  2. angular添加,查找与全部删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. iOS将自己的框架更新到cocopods上

    第一步 把自己的框架更新到github 上,为了提交地址给他人下载.这里就不详细介绍如何把项目更新到github上了 第二步 这个时候我们的项目已经挂在github上了我们需要给本地的项目新建一个Po ...

  4. 【学习】ie8支持rgba()透明度颜色

    (我的博客网站中的原文:http://www.xiaoxianworld.com/archives/285,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) rgba()函数可以用 ...

  5. 【学习】js学习笔记---字符串对象

    一.属性 1.length 字符串的长度,且不区分中英文的字节. 示例代码: var str="abcdefghijklmn"; var str1="中文汉语" ...

  6. Cygwin - windows系统下运行linux操作 --代替linux虚拟机安装、双系统的繁琐

    我把Cygwin视为Windows用户熟练linxu系统操作的良好途径.它不需要虚拟机.双系统等安装对电脑知识.硬件的要求,只需要基本的软件安装操作即可.以下是安装步骤供小白同胞参考. Cygwin安 ...

  7. visual Studio 无法调试,提示程序跟踪已退出

    今天在打码出现了vs无法调试,我在网上查了很久没有发现一个方法. vs点击启动时,出现了一下提示 程序"[12648] *.vshost.exe: 程序跟踪"已退出,返回值为 0 ...

  8. fio2.1.10--README

    fio --- fio is a tool that will spawn a number of threads or processes doing a particular type of io ...

  9. 树莓派.使用Node.js控制GPIO

    树莓派上的40个GPIO是最好玩的东西 它们可以被C,/C++, Python, Java等语言直接控制 现在就来看看怎么用Node.js做到同样的事情 在试验之前, 请先安装好Node.js, 具体 ...

  10. svn 提交 working copy is not up-to-date

    svn在提交时报错信息如下: working copy is not up-to-date svn:commit failed(details follow): svn:file "xxxx ...