zoukankan      html  css  js  c++  java
  • log4net和一般的记录日志方法

    下载

    http://files.cnblogs.com/crazyair/log4net.zip

    1 在web项目中新建一个 Log4Net.config

    <?xml version="1.0" encoding="utf-8"?>
    <!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
    “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    /Windows/Microsoft.Net/Framework/v2.x/Config 中
    -->
    <configuration>
      <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
      </configSections>
      <log4net>
        <logger name="ikangdentalLog">
          <!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
          <!--如果没有定义LEVEL的值,则缺省为DEBUG-->
          <level value="ALL" />
          <appender-ref ref="SmtpAppenderAX"></appender-ref>
          <appender-ref ref="FileAppenderAX"></appender-ref>
        </logger>
    
        <appender name="SmtpAppenderAX" type="log4net.Appender.SmtpAppender">
          <to value="To@domain.com"></to>
          <from value="From@domain.com" />
          <subject value="AX'Test Log Message" />
          <smtpHost value="mail.eshinfo.com" />
          <username value="eshinfo" />
          <password value="eshinfo" />
          <bufferSize value="2048" />
          <!--超长部分是否丢弃-->
          <lossy value="false" />
          <!--输出级别在WARN和OFF之间的日志-->
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="WARN" />
            <param name="LevelMax" value="OFF" />
          </filter>
    
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] : %
    
    newline%message%newline" />
          </layout>
    
        </appender>
    
        <appender name="FileAppenderAX" type="log4net.Appender.RollingFileAppender">
          <!--绝对路径-->
          <file value="D://AX.txt"></file>
          <!--相对路径,在项目的根目录下-->
          <!--以最后一个路径为准,所以上面的绝对路径下不会写日志-->
          <file value="./Log/AX.txt"></file>
          <!--按照当天记录-->
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <!--<datePattern value="yyyyMMdd-HHmm" />-->
          <datePattern value="yyyyMMdd" />
          <!--防止多线程时不能写Log,官方说线程非安全-->
          <!--实际使用时,本地测试正常,部署后有不能写日志的情况-->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <appendToFile value="true" />
          <!--可以为:Once|Size|Date|Composite-->
          <!--Composite为Size和Date的组合-->
          <rollingStyle value="composite" />
          <!--日志最大个数,都是最新的-->
          <!--rollingStyle节点为Date时,该节点不起作用-->
          <!--rollingStyle节点为Size时,只能有value个日志-->
          <!--rollingStyle节点为Composite时,每天有value个日志-->
          <maxSizeRollBackups value="10" />
          <!--当备份文件时,为文件名加的后缀-->
          <!--后缀为*.txt时,例:AX.txt_2008-07-24.PxP 应该是程序上的一个bug-->
          <!--后缀为*.TXT时,例:AX.txt_2008-07-25.TXT-->
          <datePattern value="_yyyy-MM-dd.TXT" />
          <!--可用的单位:KB|MB|GB-->
          <!--不要使用小数,否则会一直写入当前日志-->
          <maximumFileSize value="1MB" />
          <!--置为true,当前最新日志文件名永远为file节中的名字-->
          <staticLogFileName value="true" />
          <!--输出级别在INFO和ERROR之间的日志-->
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="INFO" />
            <param name="LevelMax" value="ERROR" />
          </filter>
          <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
          <filter type="log4net.Filter.LevelMatchFilter">
            <param name="LevelToMatch" value="WARN" />
          </filter>
          <filter type="log4net.Filter.DenyAllFilter" />
    
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
          </layout>
        </appender>
      </log4net>
    </configuration>

    类库 common 中AssemblyInfo.cs 中加入

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

      新建一个类

    public class Log
        {
            private static log4net.ILog log = log4net.LogManager.GetLogger("ikangdentalLog");
            public static void Debug(string message)
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug(message);
                }
            }
            public static void Debug(System.Exception ex1)
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug(ex1.Message.ToString() + "/r/n" + ex1.Source.ToString() + "/r/n" +
    
    ex1.TargetSite.ToString() + "/r/n" + ex1.StackTrace.ToString());
                }
            }
            public static void Error(string message)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error(message);
                }
            }
            public static void Fatal(string message)
            {
    
                if (log.IsFatalEnabled)
                {
                    log.Fatal(message);
                }
            }
            public static void Info(string message)
            {
                if (log.IsInfoEnabled)
                {
                    log.Info(message);
                }
            }
            public static void Warn(string message)
            {
                if (log.IsWarnEnabled)
                {
                    log.Warn(message);
                }
            }
        }
    

      引用  log4net 

    用的时候   Common.Log.Info("1111");

    2  一种简单的记录日志的 

    public  class Log
        {
            /// <summary>
            /// 写日志(用于跟踪)
            /// </summary>
           public static void WriteLog(string strMemo)
            {
                string filename = HttpContext.Current.Request.PhysicalApplicationPath;
                //保存的路径
                string time = DateTime.Now.ToString("yyyy-MM-dd");
                filename = filename + "/Log/" + " " + "" + time + ".txt";
                StreamWriter sr = null;
                try
                {
                    if (!File.Exists(filename))
                    {
                        sr = File.CreateText(filename);
                    }
                    else
                    {
                        sr = File.AppendText(filename);
                    }
                    sr.WriteLine(strMemo);
                }
                catch
                {
                }
                finally
                {
                    if (sr != null)
                        sr.Close();
                }
            }
        }
    

      用的时候  Log.WriteLog("XXX");

    下载 http://files.cnblogs.com/crazyair/log4net.zip

  • 相关阅读:
    快直播-基于WebRTC升级的低延时直播
    在HTML5上开发音视频应用的五种思路
    H.265/HEVC Web端直播播放器内核开发解密
    FFmpeg 命令行和API方式转换rtsp或264成Fragmented MP4
    rtsp流转为fmp4并由WebSocket网关转发,及对应js播放器
    基于FFMPEG封装aac及h264为FargmentMP4
    HTML5 直播协议之 WebSocket 和 MSE fmp4
    wasm + ffmpeg实现前端截取视频帧功能
    es~ElasticsearchTemplate的查询和聚合
    springboot~通过面向接口编程对控制反转IOC的理解
  • 原文地址:https://www.cnblogs.com/crazyair/p/3809614.html
Copyright © 2011-2022 走看看