C#日志记录函数

C#:第一性原理理解日志(log) 日志级别就像程序的“情绪表达”:Debug是细碎的嘀咕,Info是日常报告,Warning是小心提醒,Error是问题警告,Critical是生死攸关的大事。开发者通过设置级别,可以让日志更高效地服务于他们的需求。 阅读详情
        public static void WriteLog(string s) {
            try {
                //获取项目当前绝对路径,并确认log的绝对路径
                string fileFolder = AppDomain.CurrentDomain.BaseDirectory.ToString() + "log";
                if (!Directory.Exists(fileFolder)) {
                    Directory.CreateDirectory(fileFolder);  //检查log的文件夹是否存在,否则创建新的log文件夹
                }
		//定义log文件名字格式
                string LogName = "DefenseTool";
                LogName += System.DateTime.Today.ToString("yyyy-MM-dd") + ".log";

                string filePath = fileFolder + "\\" + LogName; //log文件的绝对路径
                //检查log文件是否存在,否则创建新的log文件
                FileStream fs;
                if (!File.Exists(filePath)) {
                    fs = File.Create(filePath);
                } else {
                    fs = File.Open(filePath, FileMode.Append);
                }
                //写入log的字符串
                string strToWrite =  System.DateTime.Now.ToString("HH:mm:ss") + "\t" + s + "\r\n";
                //将字符串转换成字符数组
                byte[] b = System.Text.Encoding.Default.GetBytes(strToWrite);
                fs.Write(b, 0, b.Length);
                fs.Close();
            } catch { }
        }

代码运行结果
DateTime的ToString()函数可以按照指定格式进行转换
yyyy对应年份
MM对应月份
dd对应日期
hh对应12小时制的小时
HH对应24小时制的小时
mm对应分钟
ss对应秒数

其他尚未确认

函数式编程中的转换、日志记录与错误处理 本文探讨了C#中使用函数式编程技术处理集合数据的方法,包括转换(Transduce)的实现以及如何在函数链中进行日志记录(Tap)和错误处理(Try/Catch)。通过定义扩展方法来简化操作,提高代码的可读性和可维护性。... 阅读详情

相关推荐

C#多线程网络扫描器项目实战

C#多线程是指在同一程序中,允许多个线程并行执行。它使得程序能够在同一时刻处理多个任务,极大提高了应用程序的响应性和吞吐量。例如,在图形用户界面(GUI)应用程序中,可以使用多线程来执行耗时的操作,而不会阻塞用户界面,提升用户体验。当线程池的默认行为不足以满足应用程序需求时,可以通过自定义线程工厂来创建线程池线程。和可以用来调整线程池线程数量的上下限。自定义线程工厂允许开发者为线程配置特定参数,如线程优先级、线程文化信息等。i < 10;i++)

weixin_32311823的博客 984

C#实现自动化Log日志

概述在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志信息),假设我需要跟踪业务方法,记录方法的传递参数,执行时间,返回数据等;或者我需要查看方法的调用关系,希望进入方法的时候自动记录参数信息,出方法时记录结果和执行时间信息。这时就是一个典型的AOP运用,Java在AOP方面是很容易实现的,因为jav...

weixin_68436326的博客 3649

C#环境下项目间调用深度指南

抽象类是包含一个或多个抽象方法的类,抽象方法是没有具体实现的,必须在子类中实现。抽象类可以包含成员变量、字段以及具体的方法。抽象类通常用于表示一个概念或模板,为子类提供一个统一的接口。接口则是一种完全抽象的类型,只包含抽象方法和常量,没有成员变量。接口主要用于定义对象的行为和动作,与具体实现无关。接口是一种强契约,它规定了实现它的类必须实现接口中所有的方法。void run();在选择使用抽象类还是接口时,主要取决于设计需求。如果有一个类的行为需要在多个子类中被共享,则应该使用抽象类。

weixin_28850145的博客 819

C# 自定义Log文件写入类

C# 自定义Log文件写入类 本文档整合了一个Log类可以方便程序运行时Log的记录,并且可以精确记录到运行文件的文件名,行号,函数名等以及其他自定义信息 1.Log类 主要的静态类,在程序最开始利用Initialize()函数配合一个LogSetting完成Log类的初始化 (1)File()内置函数,配合初始化函数完成初始化 (2)Close()释放函数,完成整个类的释放后后期的写入内容 (3)Write()写入函数,根据初始化参数不同可以即时写入和最后写入 using System; u

qq_39935495的博客 3309

发一个 c#的日志函数

一个日志函数 c# 一个日志函数 c# 一个日志函数 c# 一个日志函数 c#

C#进程线程安全的LOG帮助,支持输出当前错误行数错误文件

C#进程线程安全的LOG帮助,支持输出当前错误行数错误文件,小巧

C#获取当前函数名称

C#获取当前函数名称 string strWowName = System.Reflection.MethodBase.GetCurrentMethod().Name;

csdn_wuwt的博客 3516

Halcon 简单的形状匹配定位与区域跟随

【代码】Halcon简单的形状匹配定位与区域跟随。

唐大狗 2806

对c#中的静态构造函数的一点理解

先看一个静态构造函数的例子。class Program    {        static void Main(string[] args)        {            third t= new third();                    }    }    public class first    {        public first()        { 

PlayWorld2的专栏 483

Robot Arm 机械臂源码解析

由于我们用的是步进电机,运动的时候是一步一步的,并不是平滑的,这里假设在一个平面上面,一个x步进电机,一个y步进电机。那么放大它们所走的轨迹就会是阶梯状的。而它们也只能沿着网格运动。相当于有了一个最小的分辨率,这个分辨率就是一步。如下图所示,如果x,y电机同时走就能走出45度的斜线。在三维空间里面运动也是如此,你应该可以想象的出来;首先,是updateActualPosition,用来时时更新此时的差补位置,得到的是一个路径与时间t的函数(其中路径的范围为0,1,时间范围为0,dist/v)...

爱吃炸鸡的小猪's blog 1万+

【飞控】PX4 Autopilots与MATLAB/Simulink联合仿真环境搭建全攻略

本文详细介绍了在Windows系统上搭建PX4 Autopilots与MATLAB/Simulink联合仿真环境的完整流程。通过WSL2安装Ubuntu,配置UAV Toolbox支持包,并重点解决了PX4源码克隆、子模块更新等网络难题,最终实现软件在环(SITL)仿真。文章还涵盖了硬件在环(HITL)配置及常见问题排查,为无人机飞控算法开发与测试提供了高效、可靠的解决方案。

weixin_29201933的博客 548

C#获得代码文件的行号,文件名,函数名

//行号private static int GetLineNum(){ System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(1, true); return st.GetFrame(0).GetFileLineNumber();} //文件名 private stat...

weixin_30933531的博客 398

手把手教你用GEM-2多频电磁仪找地下管道(附真实数据图)

本文详细解析了使用GEM-2多频电磁仪精准定位地下管线的全流程,包括设备调试、频率选择、现场扫描技巧及数据解读。通过真实案例展示了如何应对复杂干扰环境,提升管线检测效率与准确性,特别适合市政工程和地下管线普查。

weixin_42565652的博客 396

静态构造函数(C# 编程指南)

静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。 C# 复制 class SimpleClass { // Static constructor static SimpleClass() { //... }...

87

初探Proxmox Datacenter Manager:统一管理多集群与单节点的利器

本文介绍了Proxmox Datacenter Manager (PDM) 这一统一管理工具,它能有效解决多套Proxmox VE环境(包括集群和单节点)管理碎片化的痛点。文章详细阐述了PDM的核心功能、安装部署步骤,并通过实战演示了如何添加单节点与整个集群,实现资源的集中监控与基础运维,为运维人员提供了高效的集中管理解决方案。

weixin_29217235的博客 159

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。

2602

C# 5.0中使用CallerMemberName、CallerFilePath和CallerLineNumber获取代码的调用方信息(转载)...

很多时候,我们需要在运行过程中记录一些调测的日志信息,如下所示: public void DoProcessing() { TraceMessage("DoProcessing()被XXX调用");//这里需要知道当前谁调用了DoProcessing(),由于我们并不知道是谁调用了DoProcessing(),所以字符串中的XXX不得而知,无法将完整的日志信息用Trac...

296

深度强化学习在足式机器人中的应用 (一):基础原理与仿真环境

我们将首先深入探讨其背后的核心挑战与技术栈,然后详细推导机器人学和强化学习的基本数学原理,特别是剖析在机器人控制领域表现卓越的PPO算法。下面的独立Python脚本展示了Isaac Gym的基本API用法,加载一个Go1机器人(假设URDF已准备好),并让它执行一个简单的预设动作(正弦波运动),以此来熟悉仿真流程。:代码的核心是直接操作GPU上的PyTorch张量,避免了CPU和GPU之间的数据拷贝,这是实现高性能的关键。:所有计算(如伪策略中的正弦波计算)都应该是向量化的,一次性为所有。

VectorShift的博客 228

C# 日志

通常都用log4net public static void WriteLog(string msg, string logName, string path) { var Log = ""; Log += msg + "\r\n"; if (Directory.Exists(path) ==...

weixin_34405557的博客 101

Mac安装Typescript报错

根本原因是系统级目录的权限限制。推荐通过修改目录权限或使用nvm彻底解决问题。

江拥羡橙的博客 210

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

为什么C#的StreamWriter.Close()会引起windows平台上的关闭程序的问题?

我用c#时写了一个类用来保存日志,大概的做法是: // write logs to file public class LogInfo { static public LogInfo getInstance() { if (pLogInfo == null) pLogInfo = new LogIn

houhouzhe的专栏 3331

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# 自定义异常

自定义异常 C#中提供了丰富的异常类,但是为了满足一些其他方面需求,只有自定义一个异常类。而今天我们定义的这个异常类添加的功能也简单,就是进异常信息打印到日志中即可。 所以代码如下: [Serializable] public class PFTException : Exception { public PFTException() ...

CL10011314155的博客 449

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# 中获取调用方信息

很多时候,我们需要在运行过程中记录一些调测的日志信息,如下所示:     public void DoProcessing()     {         TraceMessage("Something happened.");     } 为了调测方便,除了事件信息外,我们往往还需要知道发生该事件的代码位置以及调用栈信息。在C++中,我们可以通过定义一个宏,然后再宏中通过__FILE__和...

记事本 2300
上一篇: C++ 利用CTime类来获取系统时间
下一篇: QTextEdit 实现触控滑动文本
Masami22
博客等级 码龄8年 529粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值