IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> C#日志记录帮助类 -> 正文阅读

[开发工具]C#日志记录帮助类

1、背景

项目程序用于记录程序运行状态的日志。包含运行信息,异常错误等。

2、程序源码

/// <summary>
    /// 通用日志记录帮助类
    /// 创建人:gyc
    /// 创建事件:2022-03-17
    /// 说明:采用反汇编技术,解析Wesun.Utils.LogHelper.dll获得
    /// 根目录LogHelper.config用于设置日志等级。
    /// </summary>
    public static class LogHelper
    {
        private static string _configFile = AppDomain.CurrentDomain.BaseDirectory + "LogHelper.config";

        private static string _logDir = AppDomain.CurrentDomain.BaseDirectory + "log";

        private static string _loglevel = LogHelper.GetValue("loglevel", "error");

        public static void Error(string msg)
        {
            LogHelper.Error(msg, "");
        }

        public static void Error(string msg, string locate)
        {
            try
            {
                string text = LogHelper._logDir + "\\LogService" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
                LogHelper.CreateLogDir();
                LogHelper.CreateLogFile(text);
                string text2 = string.Format("[{0}]Error {1}:{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), locate, msg);
                File.AppendAllLines(text, new string[]
                {
                    text2
                });
            }
            catch
            {
            }
        }

        public static void Info(string msg)
        {
            LogHelper.Info(msg, "");
        }

        public static void Info(string msg, string locate)
        {
            try
            {
                string text = LogHelper._logDir + "\\LogService" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
                if (LogHelper._loglevel.Equals("info", StringComparison.OrdinalIgnoreCase) || LogHelper._loglevel.Equals("debug", StringComparison.OrdinalIgnoreCase))
                {
                    LogHelper.CreateLogDir();
                    LogHelper.CreateLogFile(text);
                    string text2 = string.Format("[{0}]Info {1}:{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), locate, msg);
                    File.AppendAllLines(text, new string[]
                    {
                        text2
                    });
                }
            }
            catch
            {
            }
        }

        public static void Debug(string msg)
        {
            LogHelper.Debug(msg, "");
        }

        public static void Debug(string msg, string locate)
        {
            try
            {
                string text = LogHelper._logDir + "\\LogService" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
                if (LogHelper._loglevel.Equals("debug", StringComparison.OrdinalIgnoreCase))
                {
                    LogHelper.CreateLogDir();
                    LogHelper.CreateLogFile(text);
                    string text2 = string.Format("[{0}]Debug {1}:{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), locate, msg);
                    File.AppendAllLines(text, new string[]
                    {
                        text2
                    });
                }
            }
            catch
            {
            }
        }

        private static void CreateLogDir()
        {
            try
            {
                if (!Directory.Exists(LogHelper._logDir))
                {
                    Directory.CreateDirectory(LogHelper._logDir);
                }
            }
            catch
            {
            }
        }

        private static void CreateLogFile(string a_strlogFile)
        {
            try
            {
                if (!File.Exists(a_strlogFile))
                {
                    using (new FileStream(a_strlogFile, FileMode.Create))
                    {
                    }
                }
            }
            catch
            {
            }
        }

        private static string GetValue(string key)
        {
            string result;
            try
            {
                string text = AppDomain.CurrentDomain.BaseDirectory + "app.config";
                if (!File.Exists(text))
                {
                    string contents = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<configuration>\r\n<appSettings> \r\n<add key=\"loglevel\" value=\"error\" />\r\n</appSettings>\r\n</configuration>";
                    File.WriteAllText(text, contents);
                }
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load(text);
                string xpath = "//add [@key=\"" + key + "\"]/@value";
                XmlNode xmlNode = xmlDocument.SelectSingleNode(xpath);
                result = xmlNode.Value;
            }
            catch
            {
                result = "";
            }
            return result;
        }

        private static string GetValue(string key, string valueDefault)
        {
            string text = "";
            string result;
            try
            {
                text = LogHelper.GetValue(key);
            }
            catch
            {
                result = valueDefault;
                return result;
            }
            if (text == "")
            {
                result = valueDefault;
            }
            else
            {
                result = text;
            }
            return result;
        }
    }

2、使用方式

①项目生成目录下,找到LogHelper.config文件,设置日志记录等级

<add key="loglevel" value="info" />

②项目中使用

?LogHelper.Info(msg);

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:03:22  更:2022-04-18 18:05:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:26:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码