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 ...
随机推荐
- win10系统jdk安装和环境变量配置
新换电脑的原因,要重新安装jdk,完整记录一下安装过程 jdk版本用的1.7(公司默认版本) 这是jdk安装目录 更改为D:\jdk\java\jdk1.7 安装jre目录 更改为D:\jdk\ ...
- Java编译报错:意外的类型
先上代码 后续更新 public class IncidentType { public static void main(String[] args) { int a = 3; int b = ++ ...
- java类中使用quartz,设置自动任务Demo
package com.tech.jin.jobScheduler; import java.text.ParseException; import java.util.ArrayList; impo ...
- String小案例(**)、包装类型和普通数据类型的转换(拆装箱)
###String用法: package StringTest; /**功能: * 判断Java文件名是否正确,判断邮箱格式是否正确 * 其中:合法的文件名应该以.java结尾 * 合法的邮箱名至少包 ...
- 学写网页 #06# table
A B E C D <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...
- 手头没证书,如何给https做代理?Nginx TCP转发
线上的一个海外充值接口(https)经常因我朝网络问题中断,想借助hk的机器做个https反向代理又没证书. 一开始 一开始想到的办法是借助Nginx的tcp转发进行代理: 编译NGINX时加入 -- ...
- Python3 Pandas的DataFrame数据的增、删、改、查
Python3 Pandas的DataFrame数据的增.删.改.查 一.DataFrame数据准备 增.删.改.查的方法有很多很多种,这里只展示出常用的几种. 参数inplace默认为False,只 ...
- Java中断异常 InterruptedException 的正确处理方式
你看到这篇文件可能是因为你已经调用了一个抛出 InterruptedException 异常的方法,并且需要以某种方式处理它. 首先,需要了解为一个方法为啥会 throws InterruptedEx ...
- Android - Resource 之 Menu 小结
定义一个application的菜单,由MenuInflater召唤. 位置: res/menu/filename.xml 类型:指向Menu resource 文法: <?xml versio ...
- Codeforces Round #439 (Div. 2) Problem C (Codeforces 869C) - 组合数学
— This is not playing but duty as allies of justice, Nii-chan! — Not allies but justice itself, Onii ...