using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Qsg
{
<wbr><wbr> ///</wbr></wbr>
<wbr><wbr> /// 日志类</wbr></wbr>
<wbr><wbr> ///</wbr></wbr>
<wbr><wbr> public class Log</wbr></wbr>
<wbr><wbr> {</wbr></wbr>
<wbr><wbr><wbr><wbr> //静态</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public static Log log = null;</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public static void CreateInstance()</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> if (Log.log == null)</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Log.log = new Log();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> //对象</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public string logpath = AppDomain.CurrentDomain.BaseDirectory + @"Log\";</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public string logfilename = "log.txt";</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> private static object syncRoot = new object();</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> private int maxSize = 20 * 1024;//字节<wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public Log()</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> if (!System.IO.Directory.Exists(logpath)) System.IO.Directory.CreateDirectory(logpath);</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> ///</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> /// 截取日志</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> ///</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> ///</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> private void ShrinkLog(string fullFileName)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> try</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> System.IO.FileStream fs = new System.IO.FileStream(fullFileName, System.IO.FileMode.OpenOrCreate);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> if (fs.Length > 2 * maxSize)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Seek(maxSize * (-1), System.IO.SeekOrigin.End);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> byte[] arrByte = new byte[maxSize];</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Read(arrByte, 0, arrByte.Length);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Close();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs = new System.IO.FileStream(fullFileName, System.IO.FileMode.Truncate, System.IO.FileAccess.ReadWrite);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Write(arrByte, 0, arrByte.Length);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Flush();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> fs.Close();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> catch { }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> finally</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> //记录日志</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public void WriteLog(string afileName,string content)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> try</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> lock (Log.syncRoot)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ShrinkLog(logpath + afileName);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> File.AppendAllText(logpath + afileName, SystemConfig.sysCfg.serverTime.ToString() + " " + content + "\r\n");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> catch {<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> public void WriteLog( string content)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> try</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> lock (Log.syncRoot)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> ShrinkLog(logpath + logfilename);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> File.AppendAllText(logpath + logfilename, SystemConfig.sysCfg.serverTime.ToString() + " " + content + "\r\n");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> catch</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> {</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr>
<wbr><wbr> }</wbr></wbr>
}