c# 日志操作类 (将日志记录在txt文本里)

182 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace WriteLog
{ 
    public class WriteLog
    {        
        private string logFile;
        private StreamWriter writer;
        private FileStream fileStream = null;
        private object lockObject = new object();
        public WriteLog(string fileName)
        {
            logFile = fileName;
            CreateDirectory(logFile);
        }

    public void GetLogger( string info)
    {
        lock (lockObject)
        {
            try
            {
                System.IO.FileInfo fileInfo = new System.IO.FileInfo(logFile);
                if (!fileInfo.Exists)
                {
                    fileStream = fileInfo.Create();
                    writer = new StreamWriter(fileStream);
                }
                else
                {
                    fileStream = fileInfo.Open(FileMode.Append, FileAccess.Write);
                    writer = new StreamWriter(fileStream);
                }
                writer.WriteLine("" + DateTime.Now.ToString() + ":" + info);
            }
            catch (Exception ex)
            {
                string szInfo = ex.Message.ToString();
            }
            finally
            {
                if (writer != null)
                {
                    writer.Close();
                    writer.Dispose();
                    fileStream.Close();
                    fileStream.Dispose();
                }
            }
        }
    }

    public void CreateDirectory(string infoPath)
    {
        DirectoryInfo directoryInfo = Directory.GetParent(infoPath);
        if (!directoryInfo.Exists)
        {
            directoryInfo.Create();
        }
    }
}

}