log4net之類3方組件確實很方便,但是想寫個小小的demo之類的程序,有點用不起啊。
微軟自帶的TraceListener要實現一個簡易的日志幫助類還是很簡單的,直接上代碼,自己備用,也希望對同樣煩惱的哥們有用:
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Diagnostics;namespace TestExPRessionLambda{ public class Logger { /// <summary> /// 默認路徑 /// </summary> public static readonly string RootPath = AppDomain.CurrentDomain.BaseDirectory + "log"; /// <summary> /// 默認文件名格式 /// </summary> public static readonly string FileFormat = DateTime.Now.ToString("yyyy-MM-dd") + ".log"; /// <summary> /// 默認Trace監聽 /// </summary> public static TextWriterTraceListener traceListener; /// <summary> /// 靜態實例 /// </summary> private static readonly Logger instance = new Logger(); static Logger() { if (!Directory.Exists(RootPath)) { Directory.CreateDirectory(RootPath); } string logFile = RootPath.TrimEnd('//') + "http://" + FileFormat; //if (!File.Exists(logFile)) //{ // File.Create(logFile); //} //這里不用create文件,TextWriterTraceListener會自動創建了,謝謝樓下的哥們 Trace.AutoFlush = true; traceListener = new TextWriterTraceListener(logFile); Trace.Listeners.Add(traceListener); } /// <summary> /// log輸出 /// 當然這里可以自己隨便擴充 /// </summary> /// <param name="msg"></param> public static void Log(string msg) { Trace.WriteLine(msg); } }}
新聞熱點
疑難解答