【记录】.net 通用log4net日志配置
asp.net mvc
1、引入log4netNuGet包。
2、修改Global.asax下的Application_Start方法。加入log4net.Config.XmlConfigurator.Configure(),修改如下:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles); log4net.Config.XmlConfigurator.Configure();
}
3、修改web.config文件,增加以下节点配置:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net configSource="Config\log4net.config" />
4、在项目中新建Config文件夹,用于存放配置文件。
5、在文件夹下新建文件log4net.config,内容如下:
<?xml version="1.0"?>
<log4net>
<root>
<level value="DEBUG"/>
<appender-ref ref="SysAppender"/>
<appender-ref ref="consoleApp"/>
</root>
<!--信息日志配置-->
<appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\\" />
<param name="AppendToFile" value="true" />
<param name="MaximumFileSize" value="20MB" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="\\yyyyMM\\yyyyMMdd".log"" />
<param name="RollingStyle" value="Composite" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n -------------------------------------------------------------------------------------- %n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%x] %n%m %n" />
<param name="Header" value=" ====================================================================================== " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="WebLogger">
<level value="DEBUG"/>
</logger> </log4net>
调用示例:
private log4net.ILog log = log4net.LogManager.GetLogger("TestJob");
public void Execute(IJobExecutionContext context)
{
var logContent = string.Format("{0}==>>{1}{2}", DateTime.Now, "create new log.", Environment.NewLine);
log.Info(logContent);
}
.net core
新建Log4netHelper类,内容如下:
using log4net;
using log4net.Repository;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Text; namespace Five.ScheduleQuartz.Utils.Tool
{
/// <summary>
/// 日志等级
/// </summary>
public enum LogLevel
{
Error,
Debug,
Warning,
Info
}
/// <summary>
/// 单例模式初始化
/// </summary>
public class Singleton
{
private ILog Log;
private static Singleton instance;
private Singleton() { }
public static Singleton getInstance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
/// <summary>
/// 获取日志初始化器
/// </summary>
/// <param name="type">类名 方法名</param>
/// <returns></returns>
public ILog Init(string type)
{
Log = LogManager.GetLogger(Log4netHelper.Repository.Name, type);
return Log;
}
}
/// <summary>
/// 日志操作类
/// </summary>
public class Log4netHelper
{
/// <summary>
/// log4net 仓储
/// </summary>
public static ILoggerRepository Repository { get; set; }
/// <summary>
/// 输出Erro日志
/// </summary>
/// <param name="message">日志内容</param>
public static void Error(string message)
{
StackTrace trace = new StackTrace();
//获取是哪个类来调用的
var className = trace.GetFrame().GetMethod().DeclaringType;
//获取方法名称
MethodBase method = trace.GetFrame().GetMethod();
var type = "类名:" + className.Namespace + "\r\n\r\t\r\r方法名:" + method.Name;
WriteLog(LogLevel.Error, message, type);
}
/// <summary>
/// 输出Warning日志
/// </summary>
/// <param name="message">日志内容</param>
public static void Warning(string message)
{
StackTrace trace = new StackTrace();
//获取是哪个类来调用的
var className = trace.GetFrame().GetMethod().DeclaringType;
//获取方法名称
MethodBase method = trace.GetFrame().GetMethod();
var type = "类名:" + className.Namespace + "\r\n\r\t\r\r方法名:" + method.Name;
//记录日志
WriteLog(LogLevel.Warning, message, type);
}
/// <summary>
/// 输出Info日志
/// </summary>
/// <param name="message">日志内容</param>
public static void Info(string message)
{
StackTrace trace = new StackTrace();
//获取是哪个类来调用的
var className = trace.GetFrame().GetMethod().DeclaringType;
//获取方法名称
MethodBase method = trace.GetFrame().GetMethod();
var type = "类名:" + className.Namespace + "\r\n\r\t\r\r方法名:" + method.Name;
//记录日志
WriteLog(LogLevel.Info, message, type);
}
/// <summary>
/// 输出Debug日志
/// </summary>
/// <param name="message">日志内容</param>
public static void Debug(string message)
{
StackTrace trace = new StackTrace();
//获取是哪个类来调用的
var className = trace.GetFrame().GetMethod().DeclaringType;
//获取方法名称
MethodBase method = trace.GetFrame().GetMethod();
var type = "类名:" + className.Namespace + "\r\n\r\t\r\r方法名:" + method.Name;
//记录日志
WriteLog(LogLevel.Debug, message, type);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="logLevel">日志等级</param>
/// <param name="message">日志信息</param>
/// <param name="type">类名 方法名</param>
private static void WriteLog(LogLevel logLevel, string message, string type)
{
ILog Log = Singleton.getInstance().Init(type);
switch (logLevel)
{
case LogLevel.Debug:
Log.Debug(message);
break;
case LogLevel.Error:
Log.Error(message);
break;
case LogLevel.Info:
Log.Info(message);
break;
case LogLevel.Warning:
Log.Warn(message);
break;
} }
}
}
修改Startup如下:
public Startup(IConfiguration configuration)
{
Configuration = configuration;
//日志配置文件
Log4netHelper.Repository = LogManager.CreateRepository("NETCoreRepository");
XmlConfigurator.Configure(Log4netHelper.Repository, new FileInfo("./Config/log4net.config"));
}
log4net.config配置文件内容参考上面的内容。
使用示例:
Log4netHelper.Info("测试日志内容");
【记录】.net 通用log4net日志配置的更多相关文章
- LOG4NET日志配置及使用
Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...
- Log4Net 日志配置[附带源码]
前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...
- log4net 日志配置及使用
一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...
- Log4Net日志配置
1.添加Log4net.dll引用 将release版Log4net.dll拷贝到Lib文件夹,然后添加引用.
- log4net日志的配置及简单应用
在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率.而本菜鸟在大神推荐和指导下使用log4net这一插件工 ...
- 如何在通用权限管理系统中集成log4net日志功能
开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...
- 关于log4net日志的配置流程
最近又重新整理一下log4net日志的配置,现在记录一下流程和一些遇到的问题,以备后续使用,具体的配置参数等信息.此文无,见谅! 1. 下载log4net.dll文件(网上很多,随便找一个!) 2. ...
- Log4Net日志记录两种方式
简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. log4net是Ap ...
- 日志管理-将Log4net的配置配置到的独立文件中
转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...
随机推荐
- Java中的对象Object方法之---wait()和notifiy()
这一篇咋们继续,接着来介绍wait()和notify()方法,我们都知道这两个方法和之前介绍的方法不太一样,那就是这两个方法是对象Object上的,不属于Thread类上的.我们也知道这两个方法是实现 ...
- C语言 模2除法
C语言中的模2除法: 模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位.所以实际上就是异或.然后再移位移位做下一位的模2减. 步骤如下: a.用除数对被除数最高n位做模2 ...
- linux_文件系统
什么是文件系统? 存储和组织计算机数据文件的机制 分区和格式化区别? 分区是给房子打隔断,分为厨房.卧室--,格式化相当于给房子装修,让其能够让数据住进去 文件系统: 组织和管理文件 格式化: 往分区 ...
- Python初识-day1
1.第一个python程序(在pycharm中运行的,感觉还不错) 注释: 当行注释:#被注释内容 多行注释:''' 被注释内容 ''' 2.变量 (1) 自己理解的定义(仅供参考): 为了存储数据 ...
- springmvc配置文件配置的事务作用范围
作用于service,不是controller,也不是mapper.所以,要保证原子性,就放在一个serviceimpl里,而不要放在一个controller 里 第一次与数据库打交道时,事务开启,s ...
- 转载-Linux Shell 数组建立及使用技巧
转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...
- libev-4.20编译安装及简单使用
1.源码下载地址: http://www.csdn.net/tag/libev/download 2.库的编译与安装 解压文件,进入文件目录 编译的时候需要首先切换为管理员(root)账户,然后执行以 ...
- js—双等号引起的类型转换过程
一.首先看双等号前后有没有NaN,如果存在NaN一律返回false 二.再看双等号前后有没有布尔,有布尔就将布尔转换为数字.(false是0,true是1) 三.接着看双等号前后有没有字符串,有三种情 ...
- CentOS 7修改网卡名称
CentOS 7 修改网卡名为eth0 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 CentOS7的网卡名称太长,这不符合我们的使用习惯, ...
- TCP连接之未连接队列的理解[转]
tcp服务器在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认 ...