(原创)Log4Net 在多层项目中的使用小记
这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录。网上有很多相关的教程,但是各有各的说法,我结合我自己这个项目的需要,首先,项目是分多层的,假如每一层都需要加入日志记录,那该怎么办呢,下面是我的一些操作步骤,记录出来和大家分享一下,不足之处希望大家多拍板砖多多指教。
这个截图是我的当前项目的层次结构,首先在Common层先添加log4net.dll的引用(仅需这里添加引用即可),然后创建一个log4net.config(见红色数字2),我当前项目的1、4、5三处的log4net.config都是同一个,至于每层到底debug输出到的文件名是要叫做”DigitalGolf2Bug.txt“呢还是叫”ServiceApiDebug.txt“呢,可以分开在相应的4或者5里面去配,有更多的层也是同理,如果对名称无特别要求的话,那我默认debug是输出到文件”debug.txt“,而error是输出到”error.txt“,而info是输出到文件”info.txt“,之后打开Common层的AssemblyInfo文件,添加红色数字3的那句代码。最后,在红色数字5的log4net.config上点右键,选择“属性”--“复制到输出目录”--“始终复制”,这样就配置就全部搞定了,只需要在你想输出日志的地方调用LogHelper里面的方法即可。
log4net.config 配置文件:
- <?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <!-- 注册log4net -->
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
- </configSections>
- <log4net>
- <!-- 定义日志记录器,可多个 -->
- <logger name="logerror">
- <level value="ERROR" />
- <appender-ref ref="LogErrorAppender" />
- </logger>
- <logger name="logdebug">
- <level value="DEBUG" />
- <appender-ref ref="LogDebugAppender" />
- </logger>
- <logger name="loginfo">
- <level value="INFO" />
- <appender-ref ref="LogInfoAppender" />
- </logger>
- <!-- 输出到错误信息文件 -->
- <appender name="LogErrorAppender" type="log4net.Appender.FileAppender">
- <param name="File" value="error.txt" />
- <param name="AppendToFile" value="true" />
- <param name="MaxSizeRollBackups" value="" />
- <!-- 备份日志数目 -->
- <param name="MaxFileSize" value="" />
- <!-- 日志文件大小10M -->
- <param name="StaticLogFileName" value="false" />
- <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
- <param name="RollingStyle" value="Date" />
- <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%n异常时间:%d%n异常级别:%-5p%n异常内容:%m%n" />
- </layout>
- </appender>
- <!-- 输出到调试信息文件 -->
- <appender name="LogDebugAppender" type="log4net.Appender.FileAppender">
- <param name="File" value="debug.txt" />
- <param name="AppendToFile" value="true" />
- <param name="MaxSizeRollBackups" value="" />
- <!-- 备份日志数目 -->
- <param name="MaxFileSize" value="" />
- <!-- 日志文件大小10M -->
- <param name="StaticLogFileName" value="false" />
- <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
- <param name="RollingStyle" value="Date" />
- <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%n调试时间:%d%n调试内容:%m%n" />
- </layout>
- </appender>
- <!-- 输出到一般信息文件 -->
- <appender name="LogInfoAppender" type="log4net.Appender.FileAppender">
- <param name="File" value="info.txt" />
- <param name="AppendToFile" value="true" />
- <param name="MaxSizeRollBackups" value="" />
- <!-- 备份日志数目 -->
- <param name="MaxFileSize" value="" />
- <!-- 日志文件大小10M -->
- <param name="StaticLogFileName" value="false" />
- <param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
- <param name="RollingStyle" value="Date" />
- <!-- 创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc -->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%n调试时间:%d%n输出内容:%m%n" />
- </layout>
- </appender>
- </log4net>
- </configuration>
LogHelper.cs 类:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Web.UI.WebControls;
- namespace Common
- {
- public class LogHelper
- {
- private static readonly log4net.ILog log_err = log4net.LogManager.GetLogger("logerror");
- private static readonly log4net.ILog log_debug = log4net.LogManager.GetLogger("logdebug");
- private static readonly log4net.ILog log_info = log4net.LogManager.GetLogger("loginfo");
- /// <summary>
- /// 错误信息记录
- /// </summary>
- /// <param name="description">简单描述</param>
- /// <param name="ex">错误信息</param>
- public static void LogError(string description, Exception ex)
- {
- if (log_err.IsErrorEnabled) log_err.Error(description, ex);
- }
- public static void LogError(object message)
- {
- if (log_err.IsErrorEnabled) log_err.Error(message);
- }
- /// <summary>
- /// 调试信息记录
- /// </summary>
- /// <param name="message">调试信息</param>
- public static void LogDebug(object message)
- {
- if (log_debug.IsDebugEnabled) log_debug.Debug(message);
- }
- public static void LogDebug(object message, Exception ex)
- {
- if (log_debug.IsDebugEnabled) log_debug.Debug(message, ex);
- }
- /// <summary>
- /// 一般信息记录
- /// </summary>
- /// <param name="message">一般信息</param>
- public static void LogInfo(object message)
- {
- if (log_info.IsInfoEnabled) log_info.Info(message);
- }
- public static void LogInfo(object message, Exception ex)
- {
- if (log_info.IsInfoEnabled) log_info.Info(message, ex);
- }
- }
- }
(原创)Log4Net 在多层项目中的使用小记的更多相关文章
- (转载)Log4Net 在多层项目中的使用小记
(原创)Log4Net 在多层项目中的使用小记 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各 ...
- Log4Net 在多层项目中的使用小记
原文地址:http://www.cnblogs.com/zdh8675/p/3645556.html 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用 ...
- 在 .Net 项目中生成Report小记
背景 项目为WinForm + WCF 的应用,按照给定格式生成Report,显示在WinForm窗体上并可以导出为PDF和Excel文件. 分析 之前用过DevExpress For WinForm ...
- asp.net Web项目中使用Log4Net进行错误日志记录
使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...
- C# 在项目中配置Log4net
我们介绍一下在项目中配置log4net,是Apache基金会旗下的. 无论在什么环境中,配置log4net的逻辑都一样. 1)文件配置 首先在项目加载文件中,配置log4net加载项. 在Web项目中 ...
- 在类库项目中使用log4net(RollingFileAppender)记录日志
1.创建解决方案 2.创建类库项目 3.根据需要修改命名空间,修改(和/或)添加类到类库 4.引用log4net 5.类库项目根目录下创建leg4net配置文件,如D3CallTriggerPlugi ...
- log4net.dll配置以及在项目中应用 zt
1 首先在项目中引用log4net.dll,然后项目中添加一个配置文件log4net.config <?xml version="1.0" encoding="ut ...
- 浅谈Log4net在项目中如何记录日志
一 引入背景 在软件开发周期中,无论是开发中,或是测试中,或是上线后,选择合适的工具监控程序的运行状态至关重要,只有如此,才能更好地排查程序问题和检测程序性能问题等.本篇文章主要与大家分享,如何 ...
- VS2010中NET4项目中使用LOG4NET办法
两年以前项目中是用的log4net.dll是net2.0环境下面的,最近在官网http://logging.apache.org/log4net/download_log4net.cgi找到了net4 ...
随机推荐
- 「小程序JAVA实战」小程序上传短视频(46)
转自:https://idig8.com/2018/09/14/xiaochengxujavashizhanxiaochengxushangchuanduanshipin45/ 个人信息:用户上传短视 ...
- **__new__和__init__
这个__new__之前在写单例模式的时候用到过,下面做个深入了解吧. __new__是一个静态方法,而__init__是一个实例方法. __new__方法会返回一个创建的实例,而__init__什么都 ...
- ajax传递给后台数组参数方式
出自:http://blog.csdn.net/lingxyd_0/article/details/10428785 在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用 ...
- Git(四):Git远程操作详解
转: http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...
- centos7+tomcat部署JavaWeb项目超详细步骤
我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过linux系统的人而言是比较有困难的,而且至今使用云服务器也是有成本的,很多时候我们可以通过虚拟机自己搭建 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机
Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...
- Centos7安装jekyll
1.首先需要安装相应的依赖包及所需要的工具 sudo yum install nodejs npm ruby ruby-devel rubygems git 2.修改gem源 国内 使用的淘宝的更新源 ...
- JAVA heap space 内存溢出
3月28日开始使用JAVA调用SAP RFC后提示内存溢出 尝试增加set java_OPTS.....但仍然提示内存溢出 最终设置方法
- 接口自动化 Windows + HttpRunner 初探(一)
运行环境 HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS.Linux.Windows 系统平台上. HttpRunner 的开发环境为 macOS + Pyth ...
- linux系统如何安装vmware Tools(下面以CentOS为例)
VMwareTools是VMware虚拟机中很重要的一个工具包,有些时候在虚拟机中安装完操作系统会缺少网卡驱动,不能上网,这时只要安装VMwareTools就可以解决问题,下面以CentOS为例,来说 ...