Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
每做一个新项目,都会用到log4net,但总是忘记如何快速配置。有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net。
直接上介绍的步骤:
1. 官网下载最新版的log4net。http://logging.apache.org/log4net/download_log4net.cgi,打开官网,在Binaries类别下,下载最新版的log4net包,点击如下图所示按钮下载:

2. 找到所需的log4net版本。下载后,解压缩包,找到自己.net程序所对应的log4net版本,我用的是VisualStudio 2010,项目用的是.netframework 4.0, 所以我用的log4net版本在C:\Users\zhengshuangliang\Downloads\log4net-1.2.13-bin-newkey\log4net-1.2.13\bin\net\4.0\release\
3. 选择配置信息存放方式。我喜欢把log4net的配置文件和项目的配置文件(app.config或web.config)放在一起,所以我删除了log4net自带的配置文件log4net.xml,而是把配置信息放在app.config或web.config里。
4. 在最终执行的项目配置文件里添加log4net配置信息。在app.config或web.config中添加如下面代码中的<configSections>和<log4net>的内容(代码中以黄色背景标识)。
只需在最终执行的项目下添加配置文件就行,因为所有的其他项目或引用的dll都会走同一个入口(可执行项目),所以整个产品就只有一份log4net配置文件即可,在你想写日志的项目里引用log4net.dll,直接创建Logger对象写日志即可,详细操作可参照步骤6。
以下log4net配置信息将会在可执行的项目目录下创建Log文件夹,里面会创建名位:Logs_20150116.txt;Logs_20150116.txt1;Logs_20150116.txt2的日志文件,每个文件最大为10M,不设文件数目上限,日期变化后会重新生成新的日志文件。若需要更详细的的配置信息请参看其他博文,本文不做详细介绍
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<appSettings>
<add key="RestServicePort" value="8899"/>
</appSettings> <log4net>
<!--配置日志的级别,低于此级别的就不写到日志里面去OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL-->
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="WebLogger">
<level value="ERROR" />
</logger>
<!--输出到文件-->
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="Log/" />
<param name="AppendToFile" value="true" />
<!-- 切割最多文件数 -1表示不限制产生日志文件数-->
<param name="MaxSizeRollBackups" value="-1"/>
<!-- 每个文件的大小限制 -->
<param name="MaximumFileSize" value="10MB"/>
<!-- RollingStyle Composite 综合 Size 按大小 Date 按时间 -->
<param name="RollingStyle" value="Composite" />
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="Header" value=" ----------------------application startup-------------------------- " />
<param name="Footer" value=" ----------------------application shutdown-------------------------- " />
<param name="ConversionPattern" value="%d ThreadId[%t] %-5p %c - (Line:%line) %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ALL" />
<param name="LevelMax" value="OFF" />
</filter>
</appender>
<!--输出控制台-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - (%line) %m%n" />
</layout>
</appender>
</log4net> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
5. 配置可执行项目的AssemblyInfo.cs文件,以便让log4net的配置信息让所有dll找到。在可执行项目的AssemblyInfo.cs文件中添加如下代码中的最后一行
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("***CentralServiceStartEngine")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("IGT Technology Development (Beijing) Co., Ltd.")]
[assembly: AssemblyProduct("***CentralServiceStartEngine")]
[assembly: AssemblyCopyright("Copyright ©***, Ltd. 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("7c36bff0-c***-4f43-8be8-3781390c35c7")] // Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: log4net.Config.XmlConfigurator(Watch = true)]
6.项目中使用Log4net。把log4net.dll(无需log4net.xml)放在整个项目的Lib工具库里,在需要写日志的项目中引用此log4net.dll文件,首先创建Logger,然后直接写日志即可。如下代码:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using log4net; namespace ***.***.***
{
public static class CentralServiceEngine
{
//CentralServiceEngine将会在日志中体现,为的是更快定位问题
private static ILog _log = LogManager.GetLogger(typeof (CentralServiceEngine)); public static void StartService()
{
_log.Info("In OnStart IPSCentralService.");
_log.Info("Info");
_log.Debug("Debug");
_log.Warn("Warn");
_log.Error("ERROR");
_log.Fatal("Fatal");
} public static void StopService()
{
_log.Info("In onStop IPSCentralService.");
}
}
}
Build代码若出现找不到log4net命名空间或程序集的错误,则修改下项目的Target Framework(目标框架,在项目->右键属相->Application页签中),从.NET Framework 4 Client Profile 变为.NET Framework 4。
以上代码中会有带*号的内容,目的是不想把自己的内容公开,用时请替换为你的真实数据。
此博文仅为能快速搭建写日志的平台,有问题随时交流,错误之处欢迎批评指正。
Log4net快速配置使用指南。(快速搭建log4net日志平台手册)的更多相关文章
- 基于Kafka+ELK搭建海量日志平台
早在传统的单体应用时代,查看日志大都通过SSH客户端登服务器去看,使用较多的命令就是 less 或者 tail.如果服务部署了好几台,就要分别登录到这几台机器上看,等到了分布式和微服务架构流行时代,一 ...
- 从头开始搭建分布式日志平台的docker环境
上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平 ...
- 使用 Loki 搭建个人日志平台
文章转载自:https://blog.kelu.org/tech/2020/01/31/grafana-loki-for-logging-aggregation.html 背景 Loki的第一个稳定版 ...
- Spring Boot (日志篇):Log4j2整合ELK,搭建实时日志平台
一.安装JDK1.8以上版本 1.从Oracle官网上下载Linux x64版本的 下载地址: http://www.oracle.com/technetwork/java/javase/downlo ...
- ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
一.前言 1.ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进 ...
- Elasticsearch+Logstash+Kibana搭建分布式日志平台
一.前言 编译安装 1.ELK简介 下载相关安装包地址:https://www.elastic.co/cn/downloads ELK是Elasticsearch+Logstash+Kibana的简称 ...
- 基于ELK搭建MySQL日志平台的要点和常见错误
第一部分 概括 ELK是集分布式数据存储.可视化查询和日志解析于一体的日志分析平台.ELK=elasticsearch+Logstash+kibana,三者各司其职,相互配合,共同完成日志的数据处理工 ...
- 搭建ELK日志平台(单机)
系统版本:Ubuntu 16.04.7 LTS 软件架构:Filebeat+Kafka+Logstash+Elasticsearch+Kibana+Nginx 软件版本:Filebeat-7.16.0 ...
- SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...
随机推荐
- (cljs/run-at (JSVM. :browser) "命名空间就这么简单")
前言 一个cljs文件定义一个命名空间,通过命名空间可以有效组织代码,这是构建大型系统必备的基础设施.本篇我们就深入理解cljs中的命名空间吧! 好习惯从"头"开始 每个cljs ...
- 6.vue如何上传到svn
node_module是不需要上传的,先删掉,然后用tortoiseSvn的TortoiseSVN Repository Browser,ADD folder,选择工程文件,就行,checkout下来 ...
- 屏幕适配/autoLayout autoresizingMask
#pragma mark-- 屏幕适配/autoLayout autoresizingMask 1> 发展历程 代码计算frame -> autoreszing(父控件和子控件的关系) - ...
- 使用CodeDOM动态编译一个字符串表达式
由于程序需要,计算的表达式使用字符串传输,这样对运算造成了影响.在程序中直接执行这段表达式可以得到值, 但是使用字符串就没有办法运算了, 所以想到用CodeDOM将这段字符串拼接在代码中编译 类似st ...
- AutoMapper 6.x 扩展
简介 很多时候我们使用AutoMapper的时候,都需要进行一个配置才可以使用Mapper.Map<Source,Target>(entity);.如果不进行配置则会报错. 如果实体过多, ...
- web前端2017.6.10
表单元素:用于客户端和服务端进行信息交互的通道 <form></form>:所有的表单元素都应该放在里面 文本输入框:<input type="text&quo ...
- Java - 在WebService中使用Client调用三方的RestAPI
背景 近期,由于项目的要求需要在自己的webservice中调用远程的WebAPI(Restful format).自己的webservice程序是用Java编码写的,所以需要在其中实现一个Clien ...
- 把sql输出成。sql文件
作者原创,转载注明出处: 代码: package importfile; import java.io.*; import java.io.PrintWriter; import java.sql.C ...
- 原生封装ajax
01.声明一个全局变量 02.开始封装,判断参数 03.属性的var自定义 04.请求 01.请求行 02.请求头 03.请求发送 05.响应 01.事件监听onreadystatechange 02 ...
- 初学c语言
虽然有一点点基础,但是还是从头学吧,这一周也就一些c语言的几个代码代表的意思和一个Hello world的程序. #include是头文件名,<>这是要返回的函数类型,然后是main主函数 ...