在最近的一個C#項目裏須要打印日誌,整理出一個工具類。代碼以下:html
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.WriteLineAsync(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); } }
使用方法:工具
Logger log = Logger.GetLogger("class_name"); log.Info("this is info");
在VS工程的/bin/Debug/logs
目錄下,保存着以時間命名的log日誌,如 20180328.log
,日誌記錄以下:this
2018-03-28 17:33:43 class_name : Info --> this is info
參考:
C# 記錄日誌日誌