(自用)MyLog 简单日志 .net6.0 等

news2024/9/17 9:12:42

appsettings.json 

{
  "LogOnOff": true //true 开启日志;false 关闭日志
}

MyLog.cs

using System.ComponentModel;

namespace Namespace 
{
    /// <summary>
    /// 日志类型 枚举
    /// </summary>
    public enum LogType
    {
        [Description("调试日志")]
        debug,//日常调试信息
        //[Description("警告日志")]
        //warning,//有错但是程序能继续执行
        [Description("报错日志")]
        error,//有错程序抛出异常
    }

    /// <summary>
    /// 创建日志文件夹
    /// 创建日志文件
    /// 写入日志内容
    /// </summary>
    public class MyLog
    {
        public static bool LogOnOff = Tools.ToBool(CustomConfigManager.GetConfig("LogOnOff"), false);//日志开关,配置在config文件

        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="log">日志(必填)</param>
        /// <param name="ex">报错信息(选填)</param>
        /// <param name="LogType">日志类型(默认:debug)</param>
        public static void WriteLog(string log, string ex = "", LogType logType = LogType.debug)
        {
            if (LogOnOff == true)//日志开关,配置在config文件
            {
                try
                {
                    string path = "log/" + logType;//文件夹路径:log/info   或者  log/error   这样的...
                    string file = path + "/" + logType + "_" + DateTime.Today.ToString("yyyyMMdd") + ".log";//文件路径+文件名+扩展名
                    if (!Directory.Exists(path))//判断文件夹是否存在
                    {
                        Directory.CreateDirectory(path);//不存在,创建文件夹
                    }
                    if (logType == LogType.error)//报错日志(一般文件比较大可能几个G,往往打不开),所以error以分钟为单位创建文件(拆分成多个小文件)
                    {
                        file = path + "/" + logType + "_" + DateTime.Today.ToString("yyyyMMddHHmm") + ".log";//文件路径+文件名+扩展名
                    }
                    using (StreamWriter sw = new StreamWriter(file, true))//创建文件或者打开已有文件
                    {
                        sw.WriteLine("------------------------------" + DateTime.Now + "------------------------------");
                        if (!string.IsNullOrWhiteSpace(log)) sw.WriteLine(log);//写入日志
                        if (!string.IsNullOrWhiteSpace(ex)) sw.WriteLine(ex);//写入报错信息(如果需要的话)
                        sw.WriteLine("");//空一行
                        sw.Close();
                    }
                }
                catch { }
            }
        }
    }
}

调用:

MyLog.WriteLog("正在启动监听服务...");//debug日志

MyLog.WriteLog($"报错: {ex.Message}", ex.ToString(), LogType.error);//error日志


 预览:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 在Android中判断一个应用是否处于前台或后台&#xff0c;可以使用ActivityLifecycleCallbacks 和 ProcessLifecycleOwner。在Kotlin中&#xff…

实验2-5-3 求平方根序列前N项和

//实验2-5-3 求平方根序列前N项和/*本题要求编写程序&#xff0c; 计算平方根序列123⋯的前N项之和。 可包含头文件math.h&#xff0c;并调用sqrt函数求平方根。*/#include<stdio.h> #include<math.h> int main(){int n0;scanf("%d",&n);//输入Nint …

【Canvas与艺术】三环莫比乌斯圈

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>三环莫比乌斯圈</title><style type"text/css"&g…

测桃花运(算姻缘)的网站系统源码

简介&#xff1a; 站长安装本源码后只要有人在线测算&#xff0c;就可以获得收入哦。是目前市面上最火的变现利器。 本版本无后台&#xff0c;无数据。本版本为开发的逗号联盟接口版本。直接对接逗号联盟&#xff0c;修改ID就可以直接运营收费赚钱。 安装环境&#xff1a;PH…

可以个性化的网盘与相册服务 PDS

可以个性化的网盘与相册服务 PDS 什么是PDS企业版企业网盘团队管理用户管理安全策略企业设置文件设置及其他设置专属登录配置 使用建议企业网盘用户端开发者版体验感受 什么是PDS 在正式开始测评PDS之前&#xff0c;首先来了解一下什么是PDS。PDS 网盘与相册服务&#xff08;D…

Pythonic 的从远程列表中提取分支名称方法

1、问题背景 在 Git 版本控制系统中&#xff0c;我们需要经常使用 git ls-remote 命令来获取远程仓库的分支列表。 这个命令的输出通常包含分支的哈希值和分支名称&#xff0c;就像这样&#xff1a; db6ad7246abf74cb845baa60e6fe45dacf897612 HEAD 1fc347b17201054d8b5b9…

YOLOv8 基于BN层的通道剪枝

YOLOv8 基于BN层的通道剪枝 1. 稀疏约束训练 在损失项中增加对BN层的缩放系数 γ \gamma γ和偏置项 β \beta β的稀疏约束&#xff0c; λ \lambda λ系数越大&#xff0c;稀疏约束越严重 L ∑ ( x , y ) l ( f ( x ) , y ) λ 1 ∑ γ g ( γ ) λ 2 ∑ β g ( β ) L…

华杉研发九学习日记18 集合 泛型

华杉研发九学习日记18 一&#xff0c;集合框架 1.1 集合和数组的区别 集合就是在java中用来保存多个对象的容器 集合是数组的升级版&#xff0c;集合中只能放置对象[object]. 数组: 在java中用来保存多个具有相同数据类型数据的容器 数组弊端&#xff1a; 1.数组只能保存…

2024AICoding公司全景图及评分

AI Coding背景 AI coding 领域的产品和公司在 2024 年开始爆发了&#xff0c;主要涉及技术进步、市场需求和开发者生态系统的变化。 本文会从技术背景&#xff0c;市场需求&#xff0c;生态以及相关评分为大家完整梳理一下相关内容。 底层技术 大规模预训练模型 技术背景&#…

C#使用OPC组件方式和AB的PLC通信

目录 一、PLC硬件配置 1、创建PLC程序 &#xff08;1&#xff09;程序工程选择 &#xff08;2&#xff09;变量和程序 2、配置程序在模拟器中运行 &#xff08;1&#xff09;打开RSLkin Classic &#xff08;2&#xff09;仿真器配置 &#xff08;3&#xff09;PLC程序…

我终于搭建完成了我的个人网站!(仅分享,非教程)

先看看我的个人网站~ https://yaoqx.pages.devhttps://yaoqx.pages.dev 来看看我搭建的过程吧&#xff01; &#xff08;仅分享&#xff0c;非教程&#xff09; 网站技术 前端框架&#xff1a;Astro主题&#xff1a;Frosti代码托管&#xff1a;Github网页部署&#xff1a;Cl…

Vscode ssh Could not establish connection to

错误表现 上午还能正常用vs code连接服务器看代码&#xff0c;中午吃个饭关闭vscode再重新打开输入密码后就提示 Could not establish connection to 然后我用终端敲ssh的命令连接&#xff0c;结果是能正常连接。 解决方法 踩坑1 网上直接搜Could not establish connectio…

浮点数如何存储

一、浮点数存储格式 符号&#xff08;sign&#xff09; s是符号位&#xff0c;1表示负&#xff0c;0表示正阶码&#xff08;exponent&#xff09; E的作用是对浮点数加权&#xff0c;这个权重是2的E次幂尾数&#xff08;significand&#xff09; M是一个二进制小数 二、举例说…

被爬网站用fingerprintjs来对selenium进行反爬,怎么破?

闲暇逛乎的时候&#xff0c;看到了这个问题&#xff1a; Fingerprintjs实际上就是专门用来识别和追踪浏览器的&#xff0c;要应对起来&#xff0c;确实并非易事。那么&#xff0c;我们要如何应对FingerprintJS的唯一标记技术呢&#xff1f; 接下来&#xff0c;我们将一起来探讨…

【自学深度学习梳理2】深度学习基础

一、优化方法 上一篇说到,使用梯度下降进行优化模型参数,可能会卡在局部最小值,或优化方法不合适永远找不到具有最优参数的函数。 1、局部最小值 梯度下降如何工作? 梯度下降是一种优化算法,用于最小化损失函数,即寻找一组模型参数,使得损失函数的值最小(局部最小值…

【Python体验】第五天:目录搜索、数据爬虫(评论区里写作业)

文章目录 目录搜索 os、shutil库数据爬虫 request、re作业&#xff1a;爬取案例的top250电影的关键信息&#xff08;名称、类型、日期&#xff09;&#xff0c;并保存在表格中 目录搜索 os、shutil库 os 模块提供了非常丰富的方法用来处理文件和目录。 os.listdir(path)&#x…

STM32的外部中断实现按键控制led灯亮灭(HAL库)

一&#xff1a;stm32外部中断概述 1&#xff1a;stm32的外部中断线 STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求&#xff1a; 线0~15&#xff1a;对应外部IO口的输入中断。 线16&#xff1a;连接到PVD输出。 线17&#xff1a;连接到R…

后端采用SpringBoot框架开发的:ADR药物不良反应智能监测系统源码,用于监测和收集药品在使用过程中发生的不良反应的系统

ADR药物不良反应智能监测系统是一套用于监测和收集药品在使用过程中发生的不良反应&#xff08;Adverse Drug Reaction, ADR&#xff09;的系统。该系统基于医院临床数据中心&#xff0c;运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能&#x…

【Python学习手册(第四版)】学习笔记11.2-表达式语句(print函数)及打印操作(重定向等)详解

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 主要介绍表达式语句&#xff08;print函数&#xff09;及打印操作&#xff08;重定向等&#xff09;。视需要选择目录阅读。 目录 表达式语句 错误示例&#xf…

实验3-7 统计学生成绩

//实验3-7 统计学生成绩 /* 本题要求编写程序读入N个学生的百分制成绩&#xff0c;统计五分制成绩的分布。 百分制成绩到五分制成绩的转换规则&#xff1a;大于等于90分为A&#xff1b;小于90且大于等于80为B&#xff1b;小于80且大于等于70为C&#xff1b;小于70且大于等于60为…