Log4net的使用教程
不怎么爱写日志,(就是比较懒),后来遇上bug了找不到问题,才决定好好使用日志
其实说实话,log4配置的那些东西记不太住,但也不需要记住什么。百度就有现成的,自己跟着网上配置好之后,稍微记录一下,为以后节省时间。
1、第一步肯定就是引入log4net的包啦 包名就叫:log4net
2、第二步是需要写一个log4的配置文件,netcore项目没有web.config,就创建一个单独的log4net.config来配置log4(还有很多可以加入的配置,主要是为了省事代码少看着舒服,达到记录日志的目的我就把多余的删掉了。百度都有现成的)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<appender name="mylog4" type="log4net.Appender.RollingFileAppender">
<!--是否追加到文件:日志文件路径,文件夹不存在则新建 -->
<param name="File" value="Logs\" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true" />
<!--最多产生的日志文件,-1不限-->
<param name="MaxSizeRollBackups" value="5" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<!--每个文件的大小-->
<param name="MaximumFileSize" value="10MB" />
<!--产生多个日志文件,以什么方式生成 (日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Size" />
<!--此处按日期产生文件夹-->
<param name="DatePattern" value="yyyy-MM-dd" />
<!--是否只写到一个文件之中-->
<param name="StaticLogFileName" value="false" />
<!--记录的格式。一般用log4net.Layout.PatternLayout布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d %m%n" />
</layout>
</appender>
<logger name="mylog4">
<level value="all" />
<appender-ref ref="mylog4" />
</logger>
<root>
<level value="all" />
</root>
</log4net>
</configuration>
3、创建一个类,主要就是来写入日志之类的操作。
using log4net;
using log4net.Appender;
using System;
using System.IO; namespace JwtAPI
{
public class Log4
{
//日志文件夹
private static string filePath = AppDomain.CurrentDomain.BaseDirectory + @"\Logs\";
//指定的记录器
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("mylog4");
static Log4()
{
//使用指定的log4配置文件配置log4
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
//查看文件夹是否存在,不存在就创建
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
} /// <summary>
/// 记录日志
/// </summary>
/// <param name="msg"></param>
/// <param name=""></param>
private static void WriteLog(string msg, bool isWrite ,Action<object> action)
{
if (isWrite)
{
//日志名字
string filename = "日志_" + DateTime.Now.ToString("yyyy年MM月dd日") + ".log";
//默认的log4实例
var repository = LogManager.GetRepository();
#region 记录日志
var appenders = repository.GetAppenders();
if (appenders.Length > 0)
{
RollingFileAppender targetApder = null;
foreach (var Apder in appenders)
{
if (Apder.Name == "mylog4")
{
targetApder = Apder as RollingFileAppender;
break;
}
}
if (targetApder.Name == "mylog4")//如果是文件输出类型日志,则更改输出路径
{
if (targetApder != null)
{
if (!targetApder.File.Contains(filename))
{
targetApder.File = @"Logs\" + filename;
targetApder.ActivateOptions();
}
}
}
}
#endregion
action(msg);
}
} #region 类型
/// <summary>
/// 错误
/// </summary>
public static void WriteError(string msg, bool isWrite)
{
WriteLog(msg, isWrite, log.Error);
}
/// <summary>
/// 信息
/// </summary>
public static void WriteInfo(string msg, bool isWrite)
{
WriteLog(msg, isWrite, log.Info);
}
/// <summary>
/// 警告
/// </summary>
public static void WriteWarn(string msg, bool isWrite)
{
WriteLog(msg, isWrite, log.Warn);
}
#endregion
}
}
4、将Log4.Config 配置文件 右键属性,设置始终复制
5、直接调用即可。
Log4.WriteInfo("开始方法",true);
Log4net的使用教程的更多相关文章
- log4net使用简明教程
转自: http://www.cnblogs.com/songhaipeng/p/3343606.html http://www.cnblogs.com/TianFang/archive/2013/0 ...
- Log4Net的应用教程之保存日志到数据库中
关于Log4Net的应用,网上有很多教程,但大多数都是拷贝复制,有些按照他的代码来,运行起来发现也出不来效果,但是Log4net的作用实在是非常大的,或者这里说的不对,应该说系统的日志功能是很重要的也 ...
- log4net使用简明教程,快看看哟
在项目当中经常会遇到各种各样的问题,如何可以尽快找到问题,那么就只能靠日志了,所以一个系统的日志是否完备合理就尤为重要. 在日志管理插件中log4net相当流行,下面就简单说明一下使用方法. log4 ...
- Log4net日志使用教程-控制台、文本、数据库三种记录方式
一.log4net简介: 1. Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的 ...
- webapi框架搭建-日志管理log4net
前言 本篇讲怎么在前几篇已经创建好的项目里加上日志处理机制,我们采用Log4net技术.跟多的log4net技术的细节请查阅log4net的官网. log4net官网:http://logging.a ...
- Log4Net使用学习笔记
项目源文件下载https://files.cnblogs.com/files/ckym/Log4NetTestSourceCode.zip Log4net是一款非常好用的日志记录的框架,使用它可以实现 ...
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- Window服务初级教程以及log4net配置文件初始化
Window服务初级教程:http://www.jb51.net/article/48987.htm 另外,配置log4net这个日志功能的时候需要初始化,不然会报没有初始化的错误,而且初始化的节点应 ...
- 在C#代码中应用Log4Net系列教程
在C#代码中应用Log4Net系列教程(附源代码) Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4 ...
- 在C#代码中应用Log4Net系列教程(附源代码)地址
在博客园看到一篇关于Log4Net使用教程,比较详细,感谢这位热心的博主 博客园地址:http://www.cnblogs.com/kissazi2/archive/2013/10/29/339359 ...
随机推荐
- KubeSphere 宣布开源 Thanos 的企业级发行版 Whizard
日前,青云科技宣布开源 Thanos 的企业级发行版 Whizard,为企业带来真正高可用.可扩展.可存储与查询海量监控数据.易运维.安全的 Prometheus 长期存储方案. Prometheus ...
- 网页转换为PDF的方法 Python
前言 近期有些文档是在网站上的,量非常大.加之对于纸质书的喜爱,想把他们整合到一个PDF文档中,然后交由拼多多的老熟人打印店给打一下. 但是这个网站网页转PDF有很多在线网站可以用,不过只能转一个页面 ...
- nosql的衍生与数据库的拆分
nosql简单介绍 Redis:开源.免费.非关系型数据库.K-V数据库.内存数据库,支持持久化.事务和备份,集群(支持16个库)等高可用功能.并且性能极高(可以达到100000+的QPS),易扩展, ...
- 2024强网杯pwn short wp
这时2024强网杯的pwn部分的short的WP 分析以下程序的基本安全措施 *] '/home/ysly/solve/tmp/short' Arch: i386-32-little RELRO: P ...
- springBoot项目启动卡在Root WebApplicationContext: initialization completed... (非DEBUG断点问题)
通过源码启动排查发现,初始化连接池时创建了200次,通过配置文件中将initialSize值改为10,启动时间从1分钟变为了3秒.
- 最逼真的AI换脸软件,Pluse下载介绍(可直播)
Pluse是基于人工智能的实时AI换脸工具,可以在无需任何前期数据训练的情况下,通过一张照片快速替换视频中的人脸,它支持高分辨率细节重建.色彩矫正,并能实时替换多目标人脸,非常适合娱乐社交.影视制作和 ...
- 计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
文章目录 一.TCP/IP五层模型(重要) 二.应用层常见的协议 三.TCP与UDP 3.1 TCP.UDP的区别(重要) 3.2 运行于TCP.UDP上的协议 3.3 TCP的三次握手.四次挥手 3 ...
- vue-amap接入高德地图示例
通过 CDN 的方式我们可以很容易地使用 vue-amap 写出一个 Hello world 页面. 什么是CDN? 定义是这样的:CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通 ...
- 基于木舟平台浅谈surging 的热点KEY的解决方法
一.概述 上篇文章介绍了基于surging的木舟平台如何构建起微服务,那么此篇文章将介绍基于木舟平台浅谈surging 的热点KEY的解决方法 木舟 (Kayak) 是什么? 木舟(Kayak)是基于 ...
- python系统模块之re
正则模块re: 元字符: 字符 描述 . 除换行符外的任意字符 \ 转义字符 [...] 字符集合,匹配任务其中一个 \d 数字:[0-9] \D 非数字:[^\d] \w 单词字符[A-Za-z0- ...