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、应用背景

本文将介绍,如何在项目中跟踪记录程序运行状态的日志,日志:包含程序运行状态、报错异常信息、用户点击事件等。

说的神乎其神,其实很简单,就是说创建一个含日期的文本文件(.txt),文件里存放一些日志信息、

2、程序源码

直接上源码,您可以创建一个类文件,命名LogHelper.cs。_configFile变量为配置文件的路径,您可以选择合并在app.config文件中,使用System.Configuration.ConfigurationSettings.AppSettings 来读取。

/// <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);//插入需记录的运行信息

?LogHelper.error(msg);//插入程序可能出现的异常,放在catch里记录

③日志查看

在当前程序的输出路径下,你可以找到log目录,点击打开里面就是日志文件了,你可以监控程序的运行情况。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:07:17  更:2022-04-22 19:09:59 
 
开发: 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年5日历 -2024/5/19 8:04:58-

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