1.NuGet 安装Log4Net.

2.新建一个Common的project,并且添加一个LogWriter的类:

public class LogWriter
{
//Error log
public static void Error(Exception ex)
{
LogHelper.GetInstanse().Logger.Error(string.Format("{0} - {1}", ex.Message, ex.StackTrace));
}
public static void Error(string message, Exception ex)
{
LogHelper.GetInstanse().Logger.Error(message, ex);
}
//Info Log
public static void Info(string message)
{
LogHelper.GetInstanse().Logger.Info(message);
}
public static void Info(string format, params object[] args)
{
LogHelper.GetInstanse().Logger.InfoFormat(format, args);
}
//Debug log
public static void Debug(string message)
{
LogHelper.GetInstanse().Logger.Debug(message);
} public static void Debug(string format, params object[] args)
{
LogHelper.GetInstanse().Logger.DebugFormat(format, args);
} }
class LogHelper
{
private static LogHelper _logHelper = null;
private static ILog _logger = null;
private static readonly object syncRoot = new object();
public LogHelper()
{
var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\App_Config\Log4Net.config");
log4net.Config.XmlConfigurator.Configure(logCfg);
_logger = LogManager.GetLogger(ConfigurationManager.AppSettings["LoggerName"]);
}
public static LogHelper GetInstanse()
{
if (_logHelper == null)
{
lock (syncRoot)
{
if (_logHelper == null)
{
_logHelper = new LogHelper();
}
}
}
return _logHelper;
}
public ILog Logger
{
get
{
return _logger;
}
}
}

3.在需要使用LogWriter的project中新建App_Config文件夹,加入配置文件:

Log4Net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<root>
<!--
<level value="ALL" />
<appender-ref ref="rootFile" />
-->
</root>
<logger name="TestLog">
<level value="ALL" />
<appender-ref ref="DebugLoging"/>
<appender-ref ref="InfoLoging" />
<appender-ref ref="ErrorLoging" />
</logger>
<appender name="DebugLoging" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="_LogData\log_debug" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<appender name="InfoLoging" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="_LogData\log_Info" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="ErrorLoging" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="_LogData\log_error" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}%newline%message%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%t" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
</log4net>

配置文件可以配置log 类型,info, error debug。

保存路径,保存方式(文件和数据库,若是数据库要填写connectstring)

4.在web.config/app.config中配置log的名称,这里是TestLog,和上面的log 配置文件保持一致。

<add key="LoggerName" value="TestLog" />

5.使用:

LogWriter.Error("Error occurs", e);e 是exception 对象;

LogWriter.Info("Test log feature.");

6.在路径_LogData下就会按照每天产生对应的log

Log4Net .NET log处理的更多相关文章

  1. zeroc ice log4net 多进程log文件问题

    使用zeroc ice 中的icebox 的时候多服务会有多个服务实例,每个实例都要写日志文件,所以要配置多个日志文件区分开来, 类似这样  orderservice_1_20160101.log   ...

  2. log4net 使用与配置 每天一份log文件

    1.下载 或 在nuget安装 log4net 2. web.config (app.config) <configuration> <configSections> < ...

  3. Log4net的不能产生Log文件的问题

    [问题] 用如下的步骤应用了Log4Net: 建立了一个公用的项目, 在里面引入了Log4net的Nuget package. 在公用的项目中建立了一个类,加上了Log4net的attribute. ...

  4. C#关于log4net(Log For Net)

    1       介绍 log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java ...

  5. log4net使用手册

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

  6. Log4net入门(帮助类篇)

    在前几篇Log4net入门文件的讲述过程中,我们在使用log4net的类中都要编写如下一行代码: private static log4net.ILog log = log4net.LogManage ...

  7. Log4net入门(WCF篇)

    在上一篇Log4net入门(ASP.NET MVC 5篇)中,我们讲述了如何在ASP.NET MVC 5项目中使用log4net.在这一篇中,我们将讲述如何在WCF应用中使用log4net,为了讲述这 ...

  8. Log4net入门(ASP.NET MVC 5篇)

    在前4篇Log4net入门文章中,我们讲述了log4net的一些简单用法,在这一篇中我们主要讲述如何在ASP.NET MVC 5项目中将日志信息写入SQL Server数据库中. 一.创建最简单的AS ...

  9. Log4net入门(控制台篇)

    Log4net是Apache公司的log4j™的.NET版本,用于帮助.NET开发人员将日志信息输出到各种不同的输出源(Appender),常见的输出源包括控制台.日志文件和数据库等.本篇主要讨论如何 ...

随机推荐

  1. 国内互联网公司github网址

    -----------------------------------------------------推荐技术------------------------------------------- ...

  2. VMware中Mac OS中显示共享文件夹的方法

    在finder 偏好设置里的通用标签下,勾选  “已连接的服务器”

  3. CentOS升级Python到2.7版本

    查看python的版本 1 python -V Python 2.4.3 1.先安装GCC 1 yum -y install gcc 2.下载Python-2.7.2 1 wget http://py ...

  4. 【前端】用jQuery实现瀑布流效果

    jQuery实现瀑布流效果 何为瀑布流: 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早 ...

  5. 容器_JDK源码分析_自己简单实现ArrayList容器

    这几天仔细研究下关于ArrayList容器的jdk源码,感觉收获颇多,以前自己只知道用它,但它里面具体是怎样实现的就完全不清楚了.于是自己尝试模拟写下java的ArrayList容器,简单了实现的Ar ...

  6. sublime使用总结

    上周忙呀忙~    周一到五在忙项目,周六日搬家    在帝都平均一年就要换一次房子,从开始找房子到成功住进去前前后后大约花了半个多月的时间    什么时候就有自己的小窝了-- 之前开发一直用的都是W ...

  7. 机器学习之支持向量机(SVM)

    支持向量机 百度百科(基本看不懂):http://baike.baidu.com/link?url=Z4MU6AYlf5lOX7UGHVYg9tBvxBGOkriPtNt0DixmscnMz06q5f ...

  8. 学习JavaScript时的三部分

    JavaScript = ECMAScript + DOM + BOM 其中ECMAScript表示的是基本语法,包括我们实现JS的基本语法,如变量的声明.基本的语句(if.for.switch等) ...

  9. es6的新内容

    前端学习总结(十八)ES6--新一代的javascript 发表于2016/6/11 21:44:27  2733人阅读 分类: javascript 简介 ECMAScript 6(以下简称ES6) ...

  10. CentOS环境下中文显示乱码,vim和ls命令显示中文均为乱码的解决办法

    1.登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言 2.查看是否有中文语言包可以在终端输入 locale命令,如有zh cn 表示已经安装了中文语言 3.如果 ...