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. Centos6.9安装部署nginx服务器

    (一)依赖包安装 首先,gcc,pcre,zlib,openssl安装一边(可以用非-devel,但是嫌麻烦....用非-devel的看这个链接) yum  -y install gcc ------ ...

  2. django下命令行工具

    django-admin.py是Django的一个用户管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django Project里面都包含一个manage. ...

  3. 修改Weblogic jdk版本

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

  4. python中强大的format函数

    自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串.语法 它通过{}和:来代替%. 请看下面的示例,基本上总结了format函数在python ...

  5. 2017-07-10(lastlog rpm yum)

    lastlog 查看所有用户最后一次登录的时间 rpm www.rpmfind.net   用来确认函数库需要安装哪个依赖程序的的网站 rpm -ivh  包全名 (安装) rpm -Uvh 包全名( ...

  6. Hystrix-命令名称、分组以及线程池划分

    命令名称: 1.1 以继承的方式实现Hystrix命令使用类名作为默认的命令名称,我们也可以在构造函数中通过Setter静态类来设置 1.2 为了保存每个命令分配的Setter分配,你也可以像这样缓存 ...

  7. 爬虫_url去重策略

    如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ...

  8. linkin大话数据结构--Queue

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必按顺序存储,所以插入和删除速度超 ...

  9. 编译原理-NFA构造DFA

    本题摘自北邮的编译原理与技术. 首先,根据此图构造状态转换表 表中第一列第一行表示从第一个符号B通过任意个空转换能到达的节点,Ia表示由此行的状态数组({B,5,1}可以看作0状态)经过一个a可以到达 ...

  10. nagios的安装

    Nagios通常由一个主程序(Nagios).一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE.NSCA. NSClient++和NDOUtils)组成.Nagios的监控 ...