log4net配置使用
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".log"" />
<!--按照何种方式产生多个日志文件(日期[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".log"" />
<!--按照何种方式产生多个日志文件(日期[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".log"" />
<!--按照何种方式产生多个日志文件(日期[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".log"" />
<!--按照何种方式产生多个日志文件(日期[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".log"" />
<!--按照何种方式产生多个日志文件(日期[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配置使用的更多相关文章
- Common.Logging log4net Common.Logging.Log4Net 配置
1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...
- Log4Net 配置StmpAppender
目录 Log4Net 配置StmpAppender 1 1.前言 1 2.详细配置 1 1.StmpAppender配置 1 2.Root 配置 2 3.更多选项 ...
- C# Log4Net配置
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...
- Log4net配置与使用简要说明
log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...
- MVC Log4Net 配置
1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...
- ASP.NET MVC学习之Log4Net配置(日志记录)
Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...
- C# 日志系统 log4net 配置及使用
1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...
- JWT+Log4net配置与使用
Log4net的优点 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...
- log Log4NET配置
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过 日志查看系统的运行过程,从而发现系统的问题.日志的作用:将 ...
- NHibernate的调试技巧和Log4Net配置
1.查看nhibernate写在控制台里的sql语句 在配置文件中有这么个选项,假如把它设置为true,nhibernate会把执行的sql显示在控制台上. <property name=&qu ...
随机推荐
- node 按行读取文件
var readline = require('readline'); var fs = require('fs'); var os = require('os'); var fReadName = ...
- Python基础二_操作字符串常用方法、字典、文件读取
一.字符串常用方法: name.captitalize() #字符串首字母大写 name.center(50,'*') ...
- 在centos上搭建JavaWeb环境(jdk+mysql+tomcat)
1.安装OpenJDK yum list java* -openjdk* -y java -version 2.安装Tomcat cd /usr/local wget https://mc.qclou ...
- CentOS7安装MySQL冲突和问题解决小结
摘自:https://blog.csdn.net/typa01_kk/article/details/49059729 问题1: [root@localhost install-files]# rpm ...
- 基于Theano的深度学习框架keras及配合SVM训练模型
https://blog.csdn.net/a819825294/article/details/51334397 1.介绍 Keras是基于Theano的一个深度学习框架,它的设计参考了Torch, ...
- Java连接数据库 #02# JDBC经典套路
内容索引 LocalConnectionFactory.java LocalConnectionProxy.java ProfileDAO.java-2.0 ProfileDAOImpl.java-2 ...
- django中模型详解-字段类型与约束条件
这片博文来详细说明django模型的使用,涉及到django模型的创建,字段介绍,以及django模型的crud操作,以及一对一等操作. 在使用模型之前,我们首先设置数据库选项,django的默认数据 ...
- 【题解】Luogu SP8791 DYNALCA - Dynamic LCA
原题传送门 这题用Link-Cut-Tree解决,Link-Cut-Tree详解 这道题的难点就在如何求LCA: 我们珂以先对其中一个点进行access操作,然后对另一个点进行access操作,因为L ...
- GitHub客户端使用
GitHub客户端使用 我们今天先讲解一下Github for windows(客户端)的使用方法,之后我们会以一个实例一步一步的来讲解Github. Github for windows(客户端)是 ...
- poj 2096 Collecting Bugs - 概率与期望 - 动态规划
Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...