视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
.net log4的详细用法
2020-11-27 22:41:37 责编:小采
文档


本人开始接触.net 日志,如有不对之处还请多多指教!

lLog4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。Log4J。
l看如鹏站内搜索的日志文件。对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在。
l配置Log4Net环境
•新建一个WebApplication,添加一个“应用程序配置文件”(App.config)
•添加对log4net.dll的引用
•在Web.Config (或App.Config)添加配置,见备注
•初始化:在程序最开始加入log4net.Config.XmlConfigurator.Configure();(就是在Global.asax中的程序开始地方加)
•在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息"); 。通过LogManager.GetLogger传递要记录的日志类类名获得这个类的ILog(这样在日志文件中就能看到这条日志是哪个类输出的了),然后调用Debug方法输出消息。因为一个类内部不止一个地方要打印日志,所以一般把ILog声明为一个static字段。
•输出错误信息用ILog.Error方法,第二个参数可以传递Exception对象。log.Error("***错误"+ex),log.Error("***错误",ex)
l

lAppender:可以将日志输出到不同的地方,不同的输出目标对应不同的Appender:RollingFileAppender(滚动文件)、AdoNetAppender(数据库)、SmtpAppender (邮件)等。
llevel(级别):标识这条日志信息的重要级别。None>Fatal>ERROR>WARN>DEBUG>INFO>ALL,设定一个Level,那么低于这个Level的日志是不会被写到Appender中的。
lLog4Net还可以设定多个Appender,可以实现同时将日志记录到文件、数据、发送邮件等;可以设定不同的Appender的不同的Level,可以实现普通级别都记录到文件,Error以上级别发送邮件;可以实现对不同的类设定不同的Appender;还可以自定义Appender,这样可以自己实现将Error信息发短信等。
l(*)除了Log4Net,还有Enterprise Library中的Logging Application Block、Apache的CommonLog 以及NLog等,都差不多。
l用Log4Net有什么好处?自己写文件不一样吗?灵活,可以不改代码只要改配置就可以做任意的控制。
l常错:把项目的名字(本质上是程序集的名字)建成了log4net
l
在VS2010中的控制台项目引用Log4Net的时候要将项目的“目标框架”改为非“Client Profile”
1、Log4Net配置
代码如下:
<configuration>
<!-- configsections必须紧跟放在configuration后面-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="test.txt"/> <!-- 这个是日志存放在哪个文件中-->
<appendToFile value="true"/> <!--是否附加文件-->
<maxSizeRollBackups value="10"/> <!--回滚的最大容量条数-->
<maximumFileSize value="1024KB"/><!--当达到了1024k,自动进行备份-->
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/><!--严重级别分:debug,warn,error-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>

<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>

</configuration>

2、
代码如下:
 class Program
    {
        private static ILog log = LogManager.GetLogger(typeof(Program));

        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();

            log.Debug("开始运行");
            string s = Console.ReadLine();
            log.Debug("用户输入:"+s);
            try
            {
                int i = Convert.ToInt32(s);
            }
            catch (Exception ex)
            {
                log.Error("用户输入的数据错误:" + s, ex);
            }

            Console.ReadKey();
            log.Debug("程序退出");
        }

下载本文
显示全文
专题