zoukankan      html  css  js  c++  java
  • .NET代码错误日志

    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

        }

    }

  • 相关阅读:
    Vue 生命周期
    Vue
    对象
    【菜鸟学php】用菜鸟的眼光浅谈php上传文件
    在职程序猿为啥要考相关证书
    微信分享js失效,分享内容自定义将作为接口开放
    【菜鸟学Linux】gzip解压报错:gzip: stdin has more than one entry--rest ignored
    【菜鸟学php】在敲代码的路上,给自己点时间来思考
    【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员
    eclipse中使用ctrl无法追踪函数的问题(php项目)
  • 原文地址:https://www.cnblogs.com/WangJinYang/p/2819917.html
Copyright © 2011-2022 走看看