每做一个新项目,都会用到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="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
<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日志平台手册)的更多相关文章

  1. 基于Kafka+ELK搭建海量日志平台

    早在传统的单体应用时代,查看日志大都通过SSH客户端登服务器去看,使用较多的命令就是 less 或者 tail.如果服务部署了好几台,就要分别登录到这几台机器上看,等到了分布式和微服务架构流行时代,一 ...

  2. 从头开始搭建分布式日志平台的docker环境

    上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平 ...

  3. 使用 Loki 搭建个人日志平台

    文章转载自:https://blog.kelu.org/tech/2020/01/31/grafana-loki-for-logging-aggregation.html 背景 Loki的第一个稳定版 ...

  4. Spring Boot (日志篇):Log4j2整合ELK,搭建实时日志平台

    一.安装JDK1.8以上版本 1.从Oracle官网上下载Linux x64版本的 下载地址: http://www.oracle.com/technetwork/java/javase/downlo ...

  5. ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台

    一.前言 1.ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进 ...

  6. Elasticsearch+Logstash+Kibana搭建分布式日志平台

    一.前言 编译安装 1.ELK简介 下载相关安装包地址:https://www.elastic.co/cn/downloads ELK是Elasticsearch+Logstash+Kibana的简称 ...

  7. 基于ELK搭建MySQL日志平台的要点和常见错误

    第一部分 概括 ELK是集分布式数据存储.可视化查询和日志解析于一体的日志分析平台.ELK=elasticsearch+Logstash+kibana,三者各司其职,相互配合,共同完成日志的数据处理工 ...

  8. 搭建ELK日志平台(单机)

    系统版本:Ubuntu 16.04.7 LTS 软件架构:Filebeat+Kafka+Logstash+Elasticsearch+Kibana+Nginx 软件版本:Filebeat-7.16.0 ...

  9. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

随机推荐

  1. spring的Convert机制

    spring.core包内有Converter接口,方法是T convert(S source);从一个类型转为内容一个类型的实际转化器:converters可能非常多,需要一个注册器来集中管理使用, ...

  2. 使用vue实现tab操作

    在使用jQuery类库实现tab功能时,是获取鼠标在mousenter或click时的index值,然后切换到当前的标题和内容,把其他的标题和内容的状态去掉: $('.tab .title').fin ...

  3. 多个Tomcat 配置多个JDK

  4. 如何将md文件转换成带目录的html文件

    配置环境node 去官网下一个node安装包,下一步下一步: 由于现在的node都自带npm,直接 npm install i5ting_toc 这样安装好了i5ting_toc这个包, 进入你实现准 ...

  5. Chrome浏览器扩展开发系列之十二:Content Scripts

    Content Scripts是运行在Web页面的上下文的JavaScript文件.通过标准的DOM,Content Scripts 可以操作(读取并修改)浏览器当前访问的Web页面的内容. Cont ...

  6. MySQL学习笔记(三)

    --回顾 字段类型(列类型):数值型,时间日期型和字符串类型 数值型:整型和小数型(浮点型和定点型) 时间日期型:datetime,date,time,timestamp,year 字符串类型:定长, ...

  7. JavaScript+svg绘制的一个动态时钟

    结果图: 代码如下: <!DOCTYPE html> <html> <head> <title>动态时钟</title> </head ...

  8. QQ空间魔力日志大全SduSRZ

    大家好~最近,在QQ空间里出现了一种神奇的日志,谁看显示谁的信息,在个人中心显示的是一张图片,在日志里显示的又是另一张图片.这就是传说中的魔力日志.魔力日志从今年的9月份开始盛行,因为具有谁看就针对谁 ...

  9. JS - 讨论 - 编码习惯 - JavaScript代码到底要不要写分号?

    如题:烦请大家在评论区给出原创意见!多谢!

  10. 我JAVA修炼之路

    今天起,我会不定期更新我的java修炼之路, 2017.7.10,星期一 我参见了河南青云的培训班,这一天是我们的开班典礼. 我会不定期的总结我的学习笔记,大家喜欢的可以看看,不喜勿喷. 写代码: 1 ...