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&quot;.log&quot;" />
<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日志配置的更多相关文章

  1. LOG4NET日志配置及使用

    Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...

  2. Log4Net 日志配置[附带源码]

    前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...

  3. log4net 日志配置及使用

    一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...

  4. Log4Net日志配置

    1.添加Log4net.dll引用 将release版Log4net.dll拷贝到Lib文件夹,然后添加引用.

  5. log4net日志的配置及简单应用

    在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率.而本菜鸟在大神推荐和指导下使用log4net这一插件工 ...

  6. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  7. 关于log4net日志的配置流程

    最近又重新整理一下log4net日志的配置,现在记录一下流程和一些遇到的问题,以备后续使用,具体的配置参数等信息.此文无,见谅! 1. 下载log4net.dll文件(网上很多,随便找一个!) 2. ...

  8. Log4Net日志记录两种方式

     简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具.     log4net是Ap ...

  9. 日志管理-将Log4net的配置配置到的独立文件中

    转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...

随机推荐

  1. vue学习笔记(三)——目录结构介绍

    1.初始目录结构如下: 2.目录结构介绍 目录/文件 说明 build 最终发布的代码存放位置. config 配置目录,包括端口号等.我们初学可以使用默认的. node_modules npm 加载 ...

  2. 修改Weblogic jdk版本

    找到 F:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\bin setDomainEnv.cmd

  3. AF_INET 和PF_INET区别;AF_LOCAL PF_LOCAL 区别.

    从字面理解: AF_INET = Address Format, Internet = IP Addresses PF_INET = Packet Format, Internet = IP, TCP ...

  4. jquery 导出Excel表格

    仅在 table 中应用过!适用于导出简单的excel <script type="text/javascript" src="jquery.table2excel ...

  5. 浅析final关键字

    浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...

  6. scrapy_全站爬取

    如何查询scrapy有哪些模版? scrapy genspider –list 如何创建crawl模版? scrapy genspider -t crawl 域名 scrapy genspider - ...

  7. Notepad++运行Java

    插件NppExec使用 首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境 1,安装插件NppExec:解压出来提取NppExec.dll文件放在Notepad++安 ...

  8. 取IP的几个方法

    ifconfig eth0|grep " inet add"|cut -d":" -f2|cut -d " " -f1 ifconfig e ...

  9. Java NIO之网络编程

    最近在研究Java NIO和netty,曾经一度感觉很吃力,根本原因还是对操作系统.TCP/IP.socket编程的理解不到位. 不禁感叹,还是当初逃的课太多. 假如上天给我一次机会,能够再回到意气风 ...

  10. js万亿级数字转汉字的封装方法

    要求如图: 实现方法: function changeBillionToCN(c) { // 对传参进行类型处理,非字符串进行转换 if(typeof(c) != "string" ...