`

C#一个简单写日志文件的类

    博客分类:
  • C#
 
阅读更多
 /// <summary>
    /// Log 的摘要说明。
    /// </summary>
    public sealed class Log
    {
        public Log()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        ~Log()
        {

        }

        static StreamWriter CreateLogFile(string FileName)
        {
            string Path = Application.StartupPath + "\\Log";
            if (!Directory.Exists(Path))
                Directory.CreateDirectory(Path);

            string FilePath = string.Format("{0}\\{1} {2:yyyyMMdd}.log", Path, FileName, DateTime.Today);

            if (!File.Exists(FilePath))
                return File.CreateText(FilePath);

            return File.AppendText(FilePath);
        }

        public static void WriteErrorInfo(string s, Exception ex)
        {
            lock (thisLock)
            {
                StreamWriter SW = CreateLogFile("Error");

                SW.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "  " + s);
                SW.WriteLine(ex.Message);
                SW.WriteLine(ex.StackTrace);
                Write(s);
            }
        }

        private static Object thisLock = new Object();
        public static void Write(string s)
        {
            string sFileName = null;
            StreamWriter SW;
            lock (thisLock)
            {
                sFileName = Application.StartupPath + "\\Log";
                if (!Directory.Exists(sFileName)) Directory.CreateDirectory(sFileName);

                sFileName = string.Format("{0}\\Log\\{1:yyyyMMdd}.log", Application.StartupPath, DateTime.Today);
                if (!File.Exists(sFileName))
                    SW = File.CreateText(sFileName);
                else
                    SW = File.AppendText(sFileName);
                SW.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "  " + s);
                SW.Close();
            }
        }

        public static void ThrowException(string ErrMsg)
        {
            Write(ErrMsg);
            throw new Exception(ErrMsg);
        }

        public static void Read(string filename, ref string sMsg)
        {
            string sFileName = null;

            sFileName = Application.StartupPath + "\\Log";
            if (!Directory.Exists(sFileName)) Directory.CreateDirectory(sFileName);

            sFileName = string.Format("{0}\\Log\\{1}", Application.StartupPath, filename); // + ".log"

            if (!File.Exists(sFileName)) return;
            
            StreamReader SR;
            string S;
            SR = File.OpenText(sFileName);
            S = SR.ReadLine();
            while (S != null)
            {
                sMsg += S + "\r\n";
                S = SR.ReadLine();
            }
            SR.Close();
        }
    }
分享到:
评论

相关推荐

    C#的LOG日志读写操作

    非常简单详细的C# LOG日志读写,在主程序中已经为大家注释好了读写的接口,直接改就可以。路径也一定要改,不然你找不到log文件了就。代码编译没有问题,有问题请百度。

    C#Log4net记录日志

    直接代码展示C#写日志的方法,简单明了,详细信息还可以看本人发表的文章。

    C# 通过进程队列实现的企业日志类

    一个简单高效的企业日志类,与Log4net功能基本相同,免除了繁琐的配置。...开发程序都要捕捉记录一些信息和错误,并保存下来,这个类通过消息队列的方式将内容写入日志,防止同时写入时的文件被锁定问题。

    C#写的Windows文件资源管理器

    3.实现了主窗体左边驱动器树形视图(显示各驱动器及内部各文件夹列表)、右边文件列表视图(显示当前文件夹下所包含的文件和下一级文件夹)的显示,以及两者的联动显示。左右窗体间设有分隔条,拖动可改变左右窗体大小...

    c#监视系统中的指定文件,并将变化写入日志

    c#监视系统中的指定文件,并将变化写入日志,程序简单实用,适合初学者

    C#记录消息到日志文件的方法

    主要介绍了C#记录消息到日志文件的方法,涉及C#针对日志文件的读写操作技巧,非常简单实用,需要的朋友可以参考下

    C#实现一个简单实用的TXT文本操作及日志框架详解

    主要给大家介绍了关于利用C#如何实现一个简单实用的TXT文本操作及日志框架的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧

    SimpleLauncher:一个简单的 C# 游戏启动器

    一个简单的 C# 游戏启动器。 专为在虚幻引擎 4 中使用而设计,但几乎可以用于任何事情。 设置 初始设置 设置某种网络服务器。 在网络服务器上创建一个名为game的文件夹 创建一个名为changelog.html的文件。 用您的...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例114 封装类实现一个简单的计算器 139 实例115 使用面向对象思想查找字符串中的 所有数字 140 5.3 面向对象技术高级应用 141 实例116 自定义抽象类计算圆形的面积 141 实例117 利用接口实现选择不同的语言 143 ...

    C#代码实现服务程序安装卸载

     代码中的解决方案包括2个项目:系统服务程序为一简单的服务,每10秒在C:\log.txt文件内写入运行日志。服务程序内的Timer控件不能简单的从工具栏中拖入,拖入后需要更改代码使其成为System.Timers.Timer。安装程序...

    分享一种简单的文本日志

    写入日志到文本文件,这是一个简单的.net记录日志方法。

    应用log4net写日志的简单程序

    vs2005下利用log4net写日志,可以输出到文件,控制台,邮箱,数据库。

    C#源码大集合 02(共3卷)

    C#源码大集合 02(共3卷) 之前分为四个包,后两个包上传不了,对于已经下载的朋友表示赚意,现在重新再发一次(改为3卷) ├─C#源码第一部分 │ ├─第1章 控件操作 ...└─第42讲 一个简单的多线程实例

    C#源码大集合 03(共3卷)

    │ └─第四十讲 开发一个简单的Mobile应用程序 │ ├─第07部分 多线程 │ │ ├─第42讲 一个简单的多线程实例 │ │ ├─第43讲 播放声音 │ │ └─第四十五讲 反射 │ ├─第08部分XML │ ...

    C#.net_经典编程例子400个

    136 实例099 使用EventLog组件向本机现有日志中添加条目 138 3.4 FileSystemWatcher组件 140 实例100 使用FileSystemWatcher组件监视系统日志文件是否被更改 140 3.5 HelpProvider组件 142 ...

    C#源码大集合 01(共3卷)

    │ └─第四十讲 开发一个简单的Mobile应用程序 │ ├─第07部分 多线程 │ │ ├─第42讲 一个简单的多线程实例 │ │ ├─第43讲 播放声音 │ │ └─第四十五讲 反射 │ ├─第08部分XML │ ...

Global site tag (gtag.js) - Google Analytics