现在的位置: 首页 > 综合 > 正文

开源一个ASP.NET记录**.LOG的类

2014年01月28日 ⁄ 综合 ⁄ 共 2358字 ⁄ 字号 评论关闭

 using System;
using System.Collections.Generic;
using System.Text;

namespace PublicClass
{
    public static class Log
    {
        public static void WriteLine(string line)
        {
            try
            {
                System.Diagnostics.Debug.Assert((line != null), " public static void WriteLine(string line) line 不能为空!");

                line = String.Format("#############{0}################## /r/n{{/r/n   {1}  /r/n}}/r/n", DateTime.Now.ToString(), line);
                line += "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/r/n/r/n/r/n";
                line = "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/r/n" + line;
                lock (line)
                {
                    //增加每一天记录一个Log文件
                    string FileName = string.Format("~/Sys_Log/{0}.log", DateTime.Now.ToString("yyyy-MM-dd"));
                    string FilePath=System.Web.HttpContext.Current.Request.MapPath(FileName);
                    if (System.IO.File.Exists(FilePath))
                    {
                        System.IO.File.SetAttributes(FilePath, System.IO.FileAttributes.Normal); //如果存在就将该文件的属性更改成可读写
                    }
                    else
                    {
                        if(!System.IO.Directory.Exists(System.Web.HttpContext.Current.Request.MapPath("~/Sys_Log/")))
                        {
                            System.IO.Directory.CreateDirectory(System.Web.HttpContext.Current.Request.MapPath("~/Sys_Log/"));
                        }
                        System.IO.File.Create(FilePath);
                    }
                    System.IO.FileStream f = new System.IO.FileStream(FilePath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite);
                    byte[] buff = System.Text.ASCIIEncoding.Default.GetBytes(line);

                    long len = f.Length;
                    f.Seek(len, System.IO.SeekOrigin.Begin);
                    f.Write(buff, 0, buff.Length);
                    f.Close();
                }
            }
            catch (System.IO.IOException e)
            {
                throw (e);
            }
        }

        public static void WriteError(Exception err)
        {
            try
            {
                string line = String.Format(" /r/n{0}; /r/n{1};/r/n{2} ;/r/n", err.Message, err.Source, err.StackTrace);
                WriteLine(line);
            }
            catch (System.IO.IOException e)
            {
                throw (e);
            }
        }

    }
}

抱歉!评论已关闭.