zoukankan      html  css  js  c++  java
  • (原创)C#创建日志通用类<包含log4net日志和特殊日志(年/月/日/文件名.log)>

    public class LogerHelper
        {
            public LogerHelper()
            {
                SetConfig();
            }
            private static ILog loginfo = LogManager.GetLogger( "myLogger" );
            private static void SetConfig()
            {
                log4net.Config.XmlConfigurator.ConfigureAndWatch( new System.IO.FileInfo( "Configs/Log4net.xml" ) );
            }
    
            private static bool IsLoadConfig = false;
            /// <summary>
            /// 记录日志
            /// </summary>
            /// <param name="info">提示信息</param>
            public static void WriteLog( string info )
            {
                if (!IsLoadConfig)
                {
                    SetConfig();
                    IsLoadConfig = true;
                }
                if (loginfo.IsInfoEnabled)
                {
                    loginfo.Info( info );
                }
            }
    
            /// <summary>
            /// 记录异常
            /// </summary>
            /// <param name="info">错误</param>
            /// <param name="ex">Exception</param>
            public static void WriteLog( string info, Exception ex )
            {
                if (!IsLoadConfig)
                {
                    SetConfig();
                    IsLoadConfig = true;
                }
                if (loginfo.IsErrorEnabled)
                {
                    loginfo.Error( info, ex );
                }
            }
    
            /// <summary>
            /// 一天一个日志
            /// 生成方式:目录:Error/年/月/日/文件名.log
            /// </summary>
            /// <param name="message"></param>
            public static void LogToFile( string message )
            {
                try
                {
                    DirectoryInfo dir;
                    //修改记录日志为C盘根目录,并且注释判断当前程序目录内是否存在log日志文件夹
                    if (!Directory.Exists( "Error" ))
                    {
                        dir = Directory.CreateDirectory( "Error" );
                        dir.Create();
                    }
                    else
                    {
                        if (!Directory.Exists( @"Error/" + DateTime.Today.Year.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Day.ToString() ))
                        {
                            Directory.CreateDirectory( @"Error/" + DateTime.Today.Year.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Day.ToString() );
                        }
                    }
    
    
                    using (StreamWriter writer = new StreamWriter( @"Error/" + DateTime.Today.Year.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Day.ToString() + "/更新的接警单编号.log", true ))
                    {
                        try
                        {
                            writer.Write( "时间:\t" + DateTime.Now.ToString() + "\t \t \t \t" );
                            writer.WriteLine( message );
                            //writer.WriteLine( Environment.NewLine );
                            writer.Flush();
                            writer.Close();
                        }
                        catch (Exception exec)
                        {
                            WriteLog( "写入错误", exec );
                            writer.Dispose();
                        }
                    }
                }
                catch (Exception ex)
                {
                    WriteLog( "创建错误", ex );
                }
            }
        }
        //用的方法如下:
        LogerHelper.LogToFile( "创建日志"); 
        //这个将生成诸如这样的Error/年/月/日/文件名.log的日志LogerHelper.WriteLog("单独的日志");
        //这个将写入到Error/log.log文件夹下,只记录一个单独的infoLogerHelper.WriteLog("单独的日志",ex);
        //这个也将写入到Error/log.log文件夹下,记录单独的info,和一个异常信息//注意:此方法在winform里边是不用配置log4net的节点的,可以将附件中的log4net.xml放入到winform下的configs(若没有需要自己建立)下面,然后将这个xml的生成操作属性改为嵌入的资源 和 复制到输出目录改为:如果较新则复制


    附件下载
  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/smthts/p/2420450.html
Copyright © 2011-2022 走看看