Log日志源码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Common { public static class Log { private static LogManager logManager; static Log() { logManager = new LogManager(); } //public static Log(string logPath, string logFileExtName, bool writeLogTime) // { // logManager = new LogManager(logPath, logFileExtName, writeLogTime); // } public static void WriteLog(LogFile logFile, string msg) { logManager.WriteLog(logFile, msg); } public static void WriteLog(string msg) { logManager.WriteLog(LogFile.Error, msg); } //public static void WriteLog(string logFile, string msg) //{ // logManager.WriteLog(logFile, msg); //} public static void WriteLog(Exception ex, string title) { string strcontent = string.Format(title + "内部错误:{0} \r\n堆栈:{1}\r\n内容:{2}\r\n来源:{3}", ex.InnerException, ex.StackTrace, ex.Message, ex.Source); logManager.WriteLog(LogFile.Trace, strcontent); } } public class LogManager { private string logFileName = string.Empty; private string logPath = "Log"; private string logFileExtName = "log"; private bool writeLogTime = true; private bool logFileNameEndWithDate = true; private Encoding logFileEncoding = Encoding.UTF8; private object obj = new object(); #region 构造函数 public LogManager() { this.LogPath = "Log"; this.LogFileExtName = "log"; this.WriteLogTime = true; this.logFileNameEndWithDate = true; this.logFileEncoding = Encoding.UTF8; } public LogManager(string logPath, string logFileExtName, bool writeLogTime) { this.LogPath = logPath; this.LogFileExtName = logFileExtName; this.WriteLogTime = writeLogTime; this.logFileNameEndWithDate = true; this.logFileEncoding = Encoding.UTF8; } #endregion #region 属性 /// <summary> /// Log 文件路径 /// </summary> public string LogPath { get { if (this.logPath == null || this.logPath == string.Empty) { //Application.StartupPath this.logPath = AppDomain.CurrentDomain.BaseDirectory; } return this.logPath; } set { this.logPath = value; if (this.logPath == null || this.logPath == string.Empty) { //Application.StartupPath this.logPath = AppDomain.CurrentDomain.BaseDirectory; } else { try { // 判断是否不是绝对路径(绝对路径里还有":") if (this.logPath.IndexOf(Path.VolumeSeparatorChar) >= 0) { /* 绝对路径 */} else { // 相对路径 this.logPath = AppDomain.CurrentDomain.BaseDirectory + this.logPath; } if (!Directory.Exists(this.logPath)) Directory.CreateDirectory(this.logPath); } catch { this.logPath = AppDomain.CurrentDomain.BaseDirectory; } if (!this.logPath.EndsWith(@"\")) this.logPath += @"\"; } } } /// <summary> /// Log 文件扩展名 /// </summary> public string LogFileExtName { get { return this.logFileExtName; } set { this.logFileExtName = value; } } /// <summary> /// 是否在每个Log行前面添加当前时间 /// </summary> public bool WriteLogTime { get { return this.writeLogTime; } set { this.writeLogTime = value; } } /// <summary> /// 日志文件名是否带日期 /// </summary> public bool LogFileNameEndWithDate { get { return logFileNameEndWithDate; } set { logFileNameEndWithDate = value; } } /// <summary> /// 日志文件的字符编码 /// </summary> public Encoding LogFileEncoding { get { return logFileEncoding; } set { logFileEncoding = value; } } #endregion #region 公有方法 public void WriteLog(string logFile, string msg) { lock (obj) { try { if (!this.LogPath.EndsWith("\\")) { this.LogPath += "\\"; } if (!Directory.Exists(this.LogPath)) { Directory.CreateDirectory(this.LogPath); } string dateString = string.Empty; if (this.logFileNameEndWithDate || logFile.Length == 0) { dateString = DateTime.Now.ToString("yyyyMMdd"); } logFileName = string.Format("{0}{1}{2}.{3}", this.LogPath, logFile, dateString, this.logFileExtName); using (StreamWriter sw = new StreamWriter(logFileName, true, logFileEncoding)) { if (writeLogTime) { sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg); } else { sw.WriteLine(msg); } } } catch { } } } public void WriteLog(LogFile logFile, string msg) { this.WriteLog(logFile.ToString(), msg); } public void WriteLog(string msg) { this.WriteLog(string.Empty, msg); } #endregion } public enum LogFile { Trace, Error, SQL, SQLError } }
使用:
Common.Log.WriteLog("这是一般日志")
Common.Log.WriteLog(ex,"这是异常日志")
作者:欢醉
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
出处:http://zhangs1986.cnblogs.com/
码云:https://gitee.com/huanzui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号