Simple C# log tool class

In a recent C# project, the log needs to be printed and a tool class is sorted out. code show as below:

public class Logger
{
    private static readonly Logger Logg = new Logger();
    private string _className;
    private Logger()
    {

    }

    public static Logger GetLogger(string className)
    {
        Logg._className = className;
        return Logg;
    }
    public void WriteLogs(string dirName, string type, string content)
    {
        string path = AppDomain.CurrentDomain.BaseDirectory;
        if (!string.IsNullOrEmpty(path))
        {
            path = AppDomain.CurrentDomain.BaseDirectory + dirName;
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            path = path + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
            if (!File.Exists(path))
            {
                FileStream fs = File.Create(path);
                fs.Close();
            }
            if (File.Exists(path))
            {
                StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);
                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + (Logg._className ?? "") + " : " + type + " --> " + content);
                sw.Close();
            }
        }
    }

    private void Log(string type, string content)
    {
        WriteLogs("logs", type, content);
    }

    public void Debug(string content)
    {
        Log("Debug", content);
    }

    public void Info(string content)
    {
        Log("Info", content);
    }

    public void Warn(string content)
    {
        Log("Warn", content);
    }

    public void Error(string content)
    {
        Log("Error", content);
    }

    public void Fatal(string content)
    {
        Log("Fatal", content);
    }
}

Instructions:

Logger log = Logger.GetLogger("class_name");
log.Info("this is info");

In the directory of the VS project /bin/Debug/logs, log logs named by time are saved. For example 20180328.log, the log records are as follows:

2018-03-28 17:33:43 class_name : Info --> this is info

Reference: C# logging

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325844729&siteId=291194637