logger.cs

来自「《精通ASP.NET2.0网络应用系统开发》书中的源码」· CS 代码 · 共 87 行

CS
87
字号
using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Threading;
using webvisitStatistic.HitsHandler.DBLayer;
using webvisitStatistic;
namespace webvisitStatistic
{
	
	/// <summary>
	/// Logger 的摘要说明。
	/// </summary>
	public class Logger : IDisposable
	{


		protected Logger()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		public static Logger Instance
		{
			get{
				if(null==_theLogger)
				{
					_theLogger = new Logger();
					return _theLogger;
				}
				return _theLogger;
			}
		}

		public bool Init(String conn)
		{
			_LogFile = conn; // ConfigurationSettings.AppSettings[SettingLogFileName];
			if(_LogFile==null) return false;
			_writer = File.AppendText(_LogFile);
			if(null==_writer) return false;
			return true;
		}

		public void Log(String type,String level,String msg)
		{
			Debug.Assert(_writer!=null);
			Monitor.Enter(_writer);
			_writer.WriteLine("{0}{1}{2}  : {3}",type,level,DateTime.Now.ToLongTimeString(),msg);
			Monitor.Exit(_writer);
		}
		
		public void LogStatInfo(StatInfo st)
		{
			Log("Stat","Norm",st.ToString());	
		}

		#region IDisposable 成员

		public void Dispose()
		{
			// TODO:  添加 Logger.Dispose 实现
			if(_writer!=null)
			{
				try{
					_writer.Flush();
					_writer.Close();
				}catch(Exception ex)
				{

				}finally{
					_writer = null;
				}
			}
		}

		#endregion


		private String _LogFile;
		private const String SettingLogFileName = "LogFileName";
		private StreamWriter _writer;
		protected static Logger _theLogger = null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?