1.配置文件

app.config

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<!--log4net日志配置路径-->
<add key="log4net" value="log4net.config"/>
<!--日志是否开启 0不开启 1开启-->
<add key="IsWriteLog" value="1"/>
</appSettings>
</configuration>

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<logger name="logdebug">
<level value="DUBUG"></level>
<appender-ref ref="DebugAppender" />
</logger>
<logger name="logfatal">
<level value="Fatal"></level>
<appender-ref ref="FatalAppender" />
</logger>
<logger name="logwarn">
<level value="WARN"></level>
<appender-ref ref="WarnAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogError//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogInfo//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%c [%x] %n%m %n " />
</layout>
</appender>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogDebug//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
<appender name="FatalAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogFatal//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
<appender name="WarnAppender" type="log4net.Appender.RollingFileAppender">
<!--设置日志存储路径-->
<param name="File" value="Data//WebLog//LogWarn//" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="1024" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<!--这是按日期产生文件夹,并在文件名前也加上日期-->
<param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
</layout>
</appender>
</log4net>
</configuration>

2.Helper调用类

using System;
using log4net; namespace LogService
{
/// <summary>
/// LogHelper的摘要说明。
/// </summary>
public class LogHelper
{
/// <summary>
/// 静态只读实体对象info信息
/// </summary>
public static readonly ILog Loginfo = LogManager.GetLogger("loginfo"); /// <summary>
/// 静态只读实体对象error信息
/// </summary>
public static readonly ILog Logerror = LogManager.GetLogger("logerror"); /// <summary>
/// 静态只读实体对象debug信息
/// </summary>
public static readonly ILog LogDebug = LogManager.GetLogger("logdebug"); /// <summary>
/// 静态只读实体对象fatal信息
/// </summary>
public static readonly ILog LogFatal = LogManager.GetLogger("logfatal"); /// <summary>
/// 静态只读实体对象warn信息
/// </summary>
public static readonly ILog LogWarn = LogManager.GetLogger("logwarn"); /// <summary>
/// 添加info信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
public static void WriteInfo(object info)
{
try
{
if (Loginfo.IsInfoEnabled)
{
Loginfo.Info(info);
}
}
catch { }
} /// <summary>
/// 添加异常信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
/// <param name="ex">异常信息</param>
public static void WriteError(string info, Exception ex)
{
try
{
if (Logerror.IsDebugEnabled)
{
Logerror.Error(info, ex);
}
}
catch { }
} /// <summary>
/// 添加Debug信息
/// </summary>
/// <param name="info">自定义日志内容说明</param>
/// <param name="ex">异常信息</param>
public static void WriteDebug(string info, Exception ex)
{
try
{
if (LogDebug.IsDebugEnabled)
{
LogDebug.Debug(info, ex);
}
}
catch { }
} /// <summary>
/// 添加fatal信息
/// </summary>
/// <param name="fatal">自定义日志内容说明</param>
public static void WriteFatal(object fatal)
{
try
{
if (LogFatal.IsFatalEnabled)
{
LogFatal.Fatal(fatal);
}
}
catch { }
} /// <summary>
/// 添加warn信息
/// </summary>
/// <param name="warn">自定义日志内容说明</param>
public static void WriteWarn(object warn)
{
try
{
if (LogWarn.IsWarnEnabled)
{
LogWarn.Warn(warn);
}
}
catch { }
}
}
}

3.测试代码

using System;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net.Config; namespace LogService
{
class Program
{
static void Main(string[] args)
{
//初始化日志文件
string state = ConfigurationManager.AppSettings["IsWriteLog"];
//判断是否开启日志记录
if (state == "")
{
var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + ConfigurationManager.AppSettings["log4net"];
var fi = new FileInfo(path);
XmlConfigurator.Configure(fi);
} try
{
var x = ;
var q = / x;
}
catch (Exception e)
{
LogHelper.WriteError("xx", e);
LogHelper.WriteDebug("xx", e);
}
LogHelper.WriteInfo("info");
LogHelper.WriteFatal("fatal");
LogHelper.WriteWarn("warn"); Console.WriteLine();
Console.ReadLine();
}
}
}

github地址:https://github.com/842549829/log4net

log4net配置使用的更多相关文章

  1. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  2. Log4Net 配置StmpAppender

    目录 Log4Net 配置StmpAppender    1 1.前言    1 2.详细配置    1 1.StmpAppender配置    1 2.Root 配置    2 3.更多选项     ...

  3. C# Log4Net配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  4. Log4net配置与使用简要说明

    log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...

  5. MVC Log4Net 配置

    1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...

  6. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  7. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  8. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...

  9. log Log4NET配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过 日志查看系统的运行过程,从而发现系统的问题.日志的作用:将 ...

  10. NHibernate的调试技巧和Log4Net配置

    1.查看nhibernate写在控制台里的sql语句 在配置文件中有这么个选项,假如把它设置为true,nhibernate会把执行的sql显示在控制台上. <property name=&qu ...

随机推荐

  1. php学习路线(转)

    作者:Summer链接:https://www.zhihu.com/question/20034403/answer/135433912来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  2. A2W,W2A等的使用

    #include <atlbase.h> #include <atlconv.h> 代码块 { ...... USES_CONVERSION; CString TempDirP ...

  3. ==和equasl、hashmap原理(***)

    public class String01 { public static void main(String[] args) { String a="test"; String b ...

  4. MyBatis中#{ }和${ }的区别,数据库优化遵循层次和查询方法

    MyBatis中#{ }和${ }的区别详解 1.#将传入的数据当成一个字符串,会对自动传入的数据加一个 双引号. 例如order by #id#,如果传入的值是111,那么解析成sql时变为orde ...

  5. php操作共享内存shmop类及简单使用测试(代码)

    SimpleSHM 是一个较小的抽象层,用于使用 PHP 操作共享内存,支持以一种面向对象的方式轻松操作内存段.在编写使用共享内存进行存储的小型应用程序时,这个库可帮助创建非常简洁的代码.可以使用 3 ...

  6. wait与sleep的区别

    1.这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还 ...

  7. NATS—基础介绍

    1. 介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开 ...

  8. SSL/TLS代理(termination proxy)

    A TLS termination proxy (or SSL termination proxy) is a proxy server that is used by an institution ...

  9. Net SMTP QQ 发送邮件

    调用DEMO var currUser = new List<string> { "123@qq.com" , "123@qq.com" , &qu ...

  10. linux上的文件服务

    主要的文件服务vsftp.Samba.NFS对比 服务器名称 用户客户端平台 使用范围 服务端口 VSFTP Windows/linux/unix/macOS等 发布网站,文件共享 Tcp/21 Sa ...