前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET代码错误日志

.NET代码错误日志

作者头像
DougWang
发布2020-02-18 16:15:52
5580
发布2020-02-18 16:15:52
举报
文章被收录于专栏:java跬步java跬步java跬步
1.首先创建一个类Files
using System.IO;
using System.Security.AccessControl;
namespace 命名空间
{
    public class Files
    {
        /// <summary>
        /// 给指定的操作系统用户赋操作权限
        /// </summary>
        /// <param name="pathname">文件的路径</param>
        /// <param name="username">操作系统用户名</param>
        /// <param name="power">操作权限,枚举型:FullControl,ReadOnly,Write,Modify</param>
        /// <returns>是否成功</returns>
        public static bool addpathPower(string pathname, string username, string power)
        {
            bool istrue = true;
            DirectoryInfo dirinfo = new DirectoryInfo(pathname);
            if ((dirinfo.Attributes & FileAttributes.ReadOnly) != 0)
            {
                dirinfo.Attributes = FileAttributes.Normal;
            }
            //取得访问控制列表  
            DirectorySecurity dirsecurity = dirinfo.GetAccessControl();
            switch (power)
            {
                case "FullControl":
                    dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
                    break;
                case "ReadOnly":
                    dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow));
                    break;
                case "Write":
                    dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Write, AccessControlType.Allow));
                    break;
                case "Modify":
                    dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Modify, AccessControlType.Allow));
                    break;
            }
            try
            {
                dirinfo.SetAccessControl(dirsecurity);
            }
            catch
            {
                istrue = false;
            }
            return istrue;
        }
    }
}
2.之后创建Log类
using System.Text;
using System.IO;
namespace命名空间
{
    public class Log
    {
        #region  记录错误日志
        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="strformat">错误信息</param>
        /// <param name="path">日志存放位置</param>
        public static void WriteErrorLog(string strformat, string path)
        {
            try
            {
                if (!File.Exists(path))
                {
                    string nofile = Path.GetDirectoryName(path);
                    if (!Directory.Exists(nofile))
                    {
                        Directory.CreateDirectory(nofile);
                        Files.addpathPower(nofile, "ASPNET", "FullControl");
                    }
                    FileStream fss = File.Create(path); ;
                    fss.Flush();
                    fss.Close();//创建之后进行关闭 
                }
                FileStream fs = new FileStream(path, FileMode.Append);
                StreamWriter streamWriter = new StreamWriter(fs);
                streamWriter.Write(DateTime.Now.ToString() + ":" + strformat + "\r\n" + "--------------------------\r\n");
                streamWriter.Flush();
                streamWriter.Close();
                fs.Close();
            }
            catch
            {
            }
        }
        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="strformat">错误信息,和发送异常位置,系统名</param>
        /// <param name="fuzeren">负责人</param>
        public static void WriteError(string strformat, string fuzeren)
        {
            try
            {
                WriteErrorLog("负责人:" + fuzeren + strformat, "c://Program Files//cutt//error.txt");
                string path = "c://Program Files//cutt//" + fuzeren + "_error.txt";
                if (!File.Exists(path))
                {
                    string nofile = Path.GetDirectoryName(path);
                    if (!Directory.Exists(nofile))
                    {
                        Directory.CreateDirectory(nofile);
                        Files.addpathPower(nofile, "ASPNET", "FullControl"); //给aspnet用户加权限,避免权限不够不能写入服务器文件
                    }
                    FileStream fss =File.Create(path);;
                    fss.Flush();
                    fss.Close();//创建之后进行关闭 ,否则直接写入报错 
                }
                FileStream fs = new FileStream(path, FileMode.Append);
                StreamWriter streamWriter = new StreamWriter(fs);
                streamWriter.Write(DateTime.Now.ToString() + ":" + strformat + "\r\n" + "--------------------------\r\n");
                streamWriter.Flush();
                streamWriter.Close();
                fs.Close();
            }
            catch
            {
            }
        }
        #endregion
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-12-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档