C#日志Log写入


 

public class Logs
{
    /// <summary>
    /// 写日志,指定日志文件
    /// </summary>
    /// <param name="File"></param>
    /// <param name="Msg"></param>
    public static void Info(string Msg)
    {
        try
        {
            string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log\\Info\\info-" + DateTime.Now.ToString("yyyyMMdd") + ".lg");
            string path = Path.GetDirectoryName(fileName);
            if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path);
                System.IO.File.CreateText(fileName).Dispose();
            }
            else if (!System.IO.File.Exists(fileName))
            {
                System.IO.File.CreateText(fileName).Dispose();
            }
            using (TextWriter writer2 = System.IO.File.AppendText(fileName))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
                sb.AppendLine("消息记录时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                sb.AppendLine(Msg);
                sb.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
                sb.AppendLine("");
                writer2.WriteLine(sb.ToString());
            }
        }
        catch (Exception ex)
        {

        }
    }

    public static void Error(string Title, Exception exception)
    {
        try
        {
            string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log\\Error\\err-" + DateTime.Now.ToString("yyyyMMdd") + ".lg");
            string path = Path.GetDirectoryName(fileName);
            if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path);
                System.IO.File.CreateText(fileName).Dispose();
            }
            else if (!System.IO.File.Exists(fileName))
            {
                System.IO.File.CreateText(fileName).Dispose();
            }
            using (TextWriter writer2 = System.IO.File.AppendText(fileName))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
                sb.AppendLine("程序发生异常:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                sb.AppendLine("异常标题:" + Title);
                GetExceptionMsg(exception, sb, "");
                sb.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
                sb.AppendLine("");
                writer2.WriteLine(sb.ToString());
            }
        }
        catch (Exception ex)
        {

        }
    }

    static void GetExceptionMsg(Exception ex, StringBuilder sb, string Prefix = "")
    {
        sb.AppendLine(Prefix + "【异常类型】:" + ex.GetType().Name);
        sb.AppendLine(Prefix + "【异常信息】:" + ex.Message);
        sb.AppendLine(Prefix + "【堆栈调用】:" + ex.StackTrace);
        sb.AppendLine(Prefix + "【异常方法】:" + ex.TargetSite);

        if (ex.InnerException != null)
            GetExceptionMsg(ex.InnerException, sb, Prefix + "\t");
    }
}
GarsonZhang www.yesdotnet.com

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
评论列表

发表评论

评论内容
昵称:
关联文章

C#日志Log写入
.Net Core 5.x Api开发笔记 -- 基础日志(Log4Net)(八)
C# txt文本文件的读取与写入,
C#错误异常日志记录到文件
QuartZ输出日志级别设置
YESWEB接口日志记录
Winform开发框架日志管理
Python 重构Print 日志记录
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
WPF开发随笔收录-本地日志LogUtil类
日志级别的选择:Debug、Info、Warn、Error还是Fatal
Python 打印日志格式,并且支持不同颜色和背景色
C# 执行Javascript脚本
C#性能优化总结
YES-WIN Winform开发框架 日志管理升级指南
iNeuOS工业互联网操作系统,发布3.6.4版本:云端安全控制和实时日志功能,附Chrome、Firefox和Edge浏览器测试性能对比
C#的进化——C#发展史、C#1.0-10.0语法系统性梳理、C#与JAVA的对比
iNeuOS工业互联网操作系统,分布式云端控制安全策略和增加实时日志功能
C# 值得永久收藏的WPF项目实战(经典)
C#加密:RSA加密解密