`
gaofen100
  • 浏览: 1227605 次
文章分类
社区版块
存档分类
最新评论

中新网 2 月 1 日电(IT 频道秦辰)按此前国家测绘地理信息局印发的《关于进一步加强互联网地图服务资质管理工作的通知》(下文简称《通知》)要求,今日起未申请

 
阅读更多

最近自己在做一个小东西,用log4net日志组件来记录日志,自己在前人的基础上加工总结,拿出来给大家分享一下,不足之处大拿们使劲拍砖,感激不尽!

第一步:配置config文件

    为了方便管理,把log4net的配置文件从web.config中分离,新建一个名为log4net.config的文件,内容如下:

View Code
  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <log4net debug="false">
  3 
  4    <!--按日期分割日志文件 一天一个-->
  5   <appender name="LogFileAppenderByDate" type="log4net.Appender.RollingFileAppender" >
  6 
  7     <!--是否续写-->
  8     <param name="AppendToFile" value="true" />
  9     <!--最小锁定模型以允许多个进程可以写入同一个文件-->
 10     <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
 11     <param name="StaticLogFileName" value="true" />
 12     <!--保存路径-->
 13     <param name="File" value="F:\Log\\" />
 14     <param name="DatePattern" value="yyyy-MM-dd.LOG" />
 15     <param name="StaticLogFileName" value="false" />
 16     <param name="RollingStyle" value="Date" />
 17     <layout type="log4net.Layout.PatternLayout">
 18       <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />
 19     </layout>
 20   </appender>
 21   
 22   <!--按日志容量分割日志文件 10KB一个-->
 23   <appender name="LogFileAppenderBySize" type="log4net.Appender.RollingFileAppender" >
 24 
 25     <!--是否续写-->
 26     <param name="AppendToFile" value="true" />
 27     <!--最小锁定模型以允许多个进程可以写入同一个文件-->
 28     <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />
 29 
 30     <param name="StaticLogFileName" value="true" />
 31 
 32     <!--按照文件的大小进行变换日志文件-->
 33     <param name="RollingStyle" value="Size" />
 34     <param name="File" value="LogData\\log.txt" />
 35     <!--单个文件最大数量 好像只有在 按Size分割时有效-->
 36     <param name="MaximumFileSize" value="10KB"/>
 37     <!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效-->
 38     <param name="MaxSizeRollBackups" value="2" />
 39     
 40     <param name="StaticLogFileName" value="false" /> 
 41     <layout type="log4net.Layout.PatternLayout">
 42       <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />
 43     </layout>
 44   </appender>  
 45   <!--记录日志到数据库-->
 46   <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 47     <bufferSize value="100" />
 48     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
 49     <connectionString value="data source=GAS-HECHEN;initial catalog=dsc141051_db;integrated security=false;persist security info=True;User ID=sa;Password=000000" />
 50     <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
 51     <parameter>
 52       <parameterName value="@log_date" />
 53       <dbType value="DateTime" />
 54       <layout type="log4net.Layout.RawTimeStampLayout" />
 55     </parameter>
 56     <parameter>
 57       <parameterName value="@thread" />
 58       <dbType value="String" />
 59       <size value="255" />
 60       <layout type="log4net.Layout.PatternLayout">
 61         <conversionPattern value="%thread" />
 62       </layout>
 63     </parameter>
 64     <parameter>
 65       <parameterName value="@log_level" />
 66       <dbType value="String" />
 67       <size value="50" />
 68       <layout type="log4net.Layout.PatternLayout">
 69         <conversionPattern value="%level" />
 70       </layout>
 71     </parameter>
 72     <parameter>
 73       <parameterName value="@logger" />
 74       <dbType value="String" />
 75       <size value="255" />
 76       <layout type="log4net.Layout.PatternLayout">
 77         <conversionPattern value="%logger" />
 78       </layout>
 79     </parameter>
 80     <parameter>
 81       <parameterName value="@message" />
 82       <dbType value="String" />
 83       <size value="4000" />
 84       <layout type="log4net.Layout.PatternLayout">
 85         <conversionPattern value="%message" />
 86       </layout>
 87     </parameter>
 88     <parameter>
 89       <parameterName value="@exception" />
 90       <dbType value="String" />
 91       <size value="2000" />
 92       <layout type="log4net.Layout.ExceptionLayout" />
 93     </parameter>
 94   </appender> 
 95   <root>
 96     <level value="INFO" />
 97     <!--启用按日期分割-->
 98     <appender-ref ref="LogFileAppenderByDate" />
 99     <!--启用按容量分割-->
100     <!--<appender-ref ref="LogFileAppenderBySize" />-->
101     <!--启用保存到数据库-->
102     <!--<appender-ref ref="AdoNetAppender" />-->
103   </root>
104 </log4net>

    内容主要配置日志的输出方式:1、按日期生成  2、按文件大小 生成  3、把日志保存到数据库文件。最后root节点是设置启动哪种方式来保存日志,以及设置日志的级别

第二步:把Log4Net.config文件添加到项目启动项

        在website或winform 项目下的Global.asax.cs类的Application_Start()方法下添加加载日志配置文件代码

View Code
1        void Application_Start(object sender, EventArgs e)
2         {
3             // Code that runs on application startup
4             log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("/Log4Net.config")));
5         }

第三步:在类库里添加日志帮助类LogHelper

        添加辅助类的目的:1、方便各个类库及项目直接调用,不用每个项目里都添加log4net的引用

                                2、为了支持根据自己配置的日志输出格式和输出方式 输出日志(configPath 用来传入日志配置路径)

View Code
 1     /// <summary>
 2 /// 日志辅助类
 3 /// </summary>
 4     public class LogHelper
 5     {
 6         private static ILog log;
 7         private static LogHelper logHelper = null;
 8         /// <summary>
 9 /// 初始化
10 /// </summary>
11 /// <returns></returns>
12         public static ILog GetInstance()
13         {
14             logHelper = new LogHelper(null);
15 
16             return log;
17         }
18         /// <summary>
19 /// 初始化
20 /// </summary>
21 /// <param name="configPath"></param>
22 /// <returns></returns>
23         public static ILog GetInstance(string configPath)
24         {
25             logHelper = new LogHelper(configPath);
26 
27             return log;
28         }
29         /// <summary>
30 /// 构造函数
31 /// </summary>
32 /// <param name="configPath"></param>
33         private LogHelper(string configPath)
34         {
35             if (!string.IsNullOrEmpty(configPath))
36             {
37                 log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
38                 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
39             }
40             else
41             {
42                 log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
43             }
44         }
45 
46     }


第四步:在项目里应用日志

           

View Code
ILog log = LogHelper.GetInstance();
log.Fatal("Fatal");

或者

ILog log = LogHelper.GetInstance(configPath);
log.Fatal("diaoxw");
0
2
分享到:
评论

相关推荐

    日电光学.txt

    日电光学

    日电东软私有云-大数据解决方案031929.pptx

    日电东软私有云的大数据解决方案专注于利用大数据的商业价值,通过先进的技术和创新的方法论,为企业创造新的价值。大数据时代已经到来,信息量呈现爆发式增长,预计到2025年,社会的信息量将是2006年的200倍。其中...

    日电华智慧旅游解决方案.zip

    日电华的智慧旅游解决方案是一个全面的系统,旨在利用现代信息技术提升旅游业的服务质量、管理效率和游客体验。这个方案的核心目标是通过数字化转型,使旅游行业更加智能化,满足日益增长的个性化和便捷化需求。 在...

    日电光学.doc

    根据提供的文档标题、描述以及部分内文,我们可以总结出以下IT相关的知识点: ### Hibernate的几种检索方式 1. **查询语言检索**: - **HQL(Hibernate Query Language)**:这是一种面向对象的查询语言,它允许...

    日电集厨制字[2007]号过程控制岗位考核管理办法A.doc

    日电集厨制字[2007]号过程控制岗位考核管理办法A.doc

    生产日电耗日登记表.xls

    生产日电耗日登记表.xls

    日电MT1045E投影仪图纸

    日电MT1045E投影仪的图纸包含了多个关键部分,包括连接图、方块图、电路图以及视频解码电路板(PWC-4426B)的详细信息。这些图纸对于理解和维修该型号投影仪至关重要。 首先,连接图(CONNECTION DIAGRAMS)展示了...

    日电华智慧旅游解决方案2020.pptx

    根据十三五全国旅游信息化规划,到2020年,旅游“云、网、端”基础设施建设逐步完善,信息新技术创新应用在行业不断深化,旅游数字化、网络化、智能化取得明显进展,旅游公共信息服务水平显著提高。 旅游信息化四大...

    生产日电耗日登记表(表格模板、XLS格式).XLS

    生产日电耗日登记表(表格模板、XLS格式).XLS

    日电研制适用于1 Tbit/s脉冲的超高速半导体全光开关

    日电研制适用于1 Tbit/s脉冲的超高速半导体全光开关

    日电开发光纤纳米探针

    日电开发光纤纳米探针

    PMSI使用手册以及框架

    夜审员和财务人员可以轻松生成分机号和部门分类的报表,以及汇总的日电话费和小酒吧消费报表,简化财务管理流程。 3. **故障报警** 系统具备无响应超时报警机制,一旦检测到连接设备工作异常,立即通过声音和...

    各软件公司笔试面试题整理

    在IT行业的求职过程中,尤其是针对Java开发者,笔试和面试是必不可少的环节。这些环节旨在评估候选人的技术实力、逻辑思维以及问题解决能力。本压缩包文件"各软件公司笔试面试题整理"收录了多家知名企业的笔试题目,...

    电力负荷预测数据集(负荷、气象)

    1. **Tianchi_power.csv**: 这个文件可能来源于阿里云天池平台,一个广泛用于数据竞赛和数据分析的平台。Tianchi数据集通常包含精心准备的训练和测试数据,用于解决特定问题,比如电力负荷预测。在这个数据集中,...

    大连理工大学20春《水利水能规划》在线作业1答案.docx.docx

    2. **概率理论**:随机事件的概率值位于0和1之间,0代表不可能发生,1代表必然发生。在统计学和概率论中,这一理论被广泛应用于分析和预测不确定性的事件。 3. **相关系数**:相关系数是用来衡量两个变量间线性相关...

    USB2.0 specification

    该规范由包括康柏(Compaq)、惠普(Hewlett-Packard)、英特尔(Intel)、朗讯科技(Lucent Technologies Inc)、微软(Microsoft)、日电(NEC)、飞利浦(Koninklijke Philips Electronics N.V.)在内的多家科技...

    横河电机高速数据采集仪SL1000的中文操作手册.pdf

    横河电机高速数据采集仪SL1000的中文操作手册pdf,横河电机高速数据采集仪SL1000的中文操作手册:高速传输和存储,通过高速USB 2.0或1000BASE-TGigabit以太网2通信可以将数据保存至PC,PC实时显示(GIGAZoom引擎)3,...

    投影机清零

    - 清零方法:在红灯状态下,先按RESET键,接着快速按下左键,之后按下右键,最后按确认键,整个过程需在7秒内完成。 #### 五、PLUS(普乐士)投影机清零方法 1. **适用机型**:PLUSU2-811/U2-815/U2-815C/U2-1110/U2...

Global site tag (gtag.js) - Google Analytics