zoukankan      html  css  js  c++  java
  • 【原创】ASP.NET Web开发,实现打印Log日志,步骤详解

    添加Log需要四步:

    一、引用log4net.dll,详见附件:http://pan.baidu.com/s/1c0hab2g

    二、项目根目录下,添加 log4net.xml

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <configuration>
     3   <configSections>
     4     <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
     5   </configSections>
     6   <log4net>
     7     <!--定义输出到文件中-->
     8     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
     9       <!--定义文件存放位置-->
    10       <file value="D:/log4netfile/BYPlatformWAPI.log" />
    11       <!--是否追加到文件-->
    12       <appendToFile value="true" />
    13       <!--名称是否可以更改 为false为可以更改-->
    14       <param name="StaticLogFileName" value="false"/>
    15       <!--变换的形式为日期-->
    16       <rollingStyle value="Date" />
    17       <!--日期的格式-->
    18       <datePattern value="yyyyMMdd-HHmmss" />
    19       <layout type="log4net.Layout.PatternLayout">
    20         <!--<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />-->
    21         <conversionPattern value="记录时间:%date 日志级别:%level Log类:%logger - Log描述:
     %message%newline" />
    22       </layout>
    23     </appender>
    24  
    25     <!--定义输出到控制台命令行中-->
    26     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    27       <layout type="log4net.Layout.PatternLayout">
    28         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    29       </layout>
    30     </appender>
    31     <!--定义输出到windows事件中-->
    32     <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
    33       <layout type="log4net.Layout.PatternLayout">
    34         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    35       </layout>
    36     </appender>
    37     <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
    38     <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
    39       <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
    40       <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
    41       <!--定义各个参数-->
    42       <parameter>
    43         <parameterName value="@logDate" />
    44         <dbType value="String" />
    45         <size value="240" />
    46         <layout type="log4net.Layout.PatternLayout">
    47           <conversionPattern value="%date" />
    48         </layout>
    49       </parameter>
    50       <parameter>
    51         <parameterName value="@thread" />
    52         <dbType value="String" />
    53         <size value="240" />
    54         <layout type="log4net.Layout.PatternLayout">
    55           <conversionPattern value="%thread" />
    56         </layout>
    57       </parameter>
    58       <parameter>
    59         <parameterName value="@logLevel" />
    60         <dbType value="String" />
    61         <size value="240" />
    62         <layout type="log4net.Layout.PatternLayout">
    63           <conversionPattern value="%level" />
    64         </layout>
    65       </parameter>
    66       <parameter>
    67         <parameterName value="@logger" />
    68         <dbType value="String" />
    69         <size value="240" />
    70         <layout type="log4net.Layout.PatternLayout">
    71           <conversionPattern value="%logger" />
    72         </layout>
    73       </parameter>
    74       <parameter>
    75         <parameterName value="@message" />
    76         <dbType value="String" />
    77         <size value="240" />
    78         <layout type="log4net.Layout.PatternLayout">
    79           <conversionPattern value="%message" />
    80         </layout>
    81       </parameter>
    82     </appender>
    83     <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    84     <root>
    85       <level value="ALL" />
    86       <!--文件形式记录日志-->
    87       <appender-ref ref="LogFileAppender" />
    88       <!--控制台控制显示日志
    89       <appender-ref ref="ConsoleAppender" />-->
    90       <!--Windows事件日志
    91       <appender-ref ref="EventLogAppender" />-->
    92       <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
    93       <appender-ref ref="AdoNetAppender_Access" />
    94       -->
    95     </root>
    96  
    97   </log4net>
    98 </configuration>
    log4net.xml

    三、在PropertiesAssemblyInfo.cs文件的底部,添加一句:

        [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

     1 using System.Reflection;
     2 using System.Runtime.CompilerServices;
     3 using System.Runtime.InteropServices;
     4  
     5 // 有关程序集的常规信息通过下列特性集
     6 // 控制。更改这些特性值可修改
     7 // 与程序集关联的信息。
     8 [assembly: AssemblyTitle("Web")]
     9 [assembly: AssemblyDescription("")]
    10 [assembly: AssemblyConfiguration("")]
    11 [assembly: AssemblyCompany("")]
    12 [assembly: AssemblyProduct("Web")]
    13 [assembly: AssemblyCopyright("版权所有(C)  2014")]
    14 [assembly: AssemblyTrademark("")]
    15 [assembly: AssemblyCulture("")]
    16  
    17 // 将 ComVisible 设置为 false 会使此程序集中的类型
    18 // 对 COM 组件不可见。如果需要从 COM 访问此程序集中的某个类型,
    19 // 请针对该类型将 ComVisible 特性设置为 true。
    20 [assembly: ComVisible(false)]
    21  
    22 // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
    23 [assembly: Guid("940997e2-1820-4f8b-b280-2e1bf426fe27")]
    24  
    25 // 程序集的版本信息由下列四个值组成:
    26 //
    27 //      主版本
    28 //      次版本
    29 //      内部版本号
    30 //      修订号
    31 //
    32 // 可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值,
    33 // 方法是按如下所示使用“*”:
    34 [assembly: AssemblyVersion("1.0.0.0")]
    35 [assembly: AssemblyFileVersion("1.0.0.0")]
    36  
    37 //添加下面这句
    38 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
    AssemblyInfo.cs

    四、在要实现的类中添加全局变量: 

     1 public class ConnectController : ApiController
     2 {
     3     #region 全局变量
     4     /// <summary>
     5     /// 日志引用
     6     /// </summary>
     7     private static log4net.ILog Log = LogManager.GetLogger("类名");
     8     #endregion
     9  
    10     public void Main()
    11     {
    12         try
    13         {
    14             Log.Debug("
    ");
    15             Log.Debug("Log 开始!");
    16         }
    17         catch (Exception ex)
    18         {
    19             Log.Error("Log 异常 :", ex);
    20         }
    21         finally
    22         {
    23             Log.Debug("Log 结束!");
    24         }
    25     }
    26 }
    View Code

    个人网站正在搭建中:http://Amoysec.com,准备使用bootstrap + knockoutjs + MVC +WebAPI + EF6.0来做,其中对knockoutjs也算有不少的了解了,虽然比不上博客园的汤姆大叔,但也全凭自己对一份chm文档摸索出了不少。欢迎一起探讨!

     转载请注明出处,谢谢:http://www.cnblogs.com/mose/p/Amoy.html

     

     
  • 相关阅读:
    Java设计模式之单例模式
    sql查询优化整理
    MYSQL 调优学习笔记
    记一次失败的大厂面试
    ElasticSearch 6.3.2 整合 Springboot 2.1.10.RELEASE 版本,使用 Logstash 导入 mysql 数据
    ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动
    浅谈 KMP 算法
    转载:Docker入门只需看这一篇就够了
    Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去
    hadoop入门之海量Web日志分析 用Hadoop提取KPI统计指标
  • 原文地址:https://www.cnblogs.com/mose/p/Amoy.html
Copyright © 2011-2022 走看看