专栏首页java跬步.NET代码错误日志

.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
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • EXT.NET 使用总结(3)--动态图表

    和雷达图一样,其他图表也是类似的定义,只是属性不同而已。具体可参考ext.net 提供的demo http://examples.ext.net/#/Chart...

    DougWang
  • 用LINQ遍历目录【转】

    DirectoryInfo dir = new DirectoryInfo(path);

    DougWang
  • TreeMap put 操作分析

    DougWang
  • 房上的猫:二维数组

    二维数组是数组的数组。 二维数组基础   基本的定义方式有两种形式,如:   int [][] i = new int[2][3];(推荐)   int i...

    房上的猫
  • .Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数

      本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果...

    追逐时光
  • 经典SQL语句大全之基本函数

    1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 2,substring(expression,start,length...

    陈珙
  • 微服务架构之服务框架Dubbo-服务暴露

    上篇文章说到ServiceBean监听了ContextRefreshedEvent然后export服务,我们接着谈这个话题

    公众号_松花皮蛋的黑板报
  • 【Android】RxJava + Retrofit完成网络请求

    Gavin-ZYX
  • C++11:变长参数模板模拟java.lang.String.format格式化输出

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • Glide缓存流程

    Android上图片加载的解决方案有多种,但是官方认可的是Glide。Glide提供简洁易用的api,整个框架也方便扩展,比如可以替换网络请求库,同时也提供了完...

    2020labs小助手

扫码关注云+社区

领取腾讯云代金券