zoukankan      html  css  js  c++  java
  • 记事本记录操作日志笔记

      1 /// <summary>
      2 /// 日志操作
      3 /// </summary>
      4 public class Record
      5 {
      6     private static Record myRecord = new Record();//实例化自身
      7 
      8     private FileInfo fFile;
      9     private FileStream myStream;
     10 
     11     /// <summary>
     12     /// 构造函数
     13     /// </summary>
     14     private Record()
     15     {
     16     }
     17 
     18     #region 记录日志内容
     19     /// <summary>
     20     /// 写日志(日志文件)
     21     /// </summary>
     22     /// <param name="sProcess">操作名</param>
     23     /// <param name="sErrMsg">异常信息</param>
     24     private void execWriteRecord(string sProcess, string sErrMsg)
     25     {
     26         try
     27         {
     28             // 日志内容
     29             string sDateTime = DateTime.Now.ToString();
     30             string sText = "";
     31             sText += "[" + sDateTime + "]    ";
     32             sText += sProcess + "";
     33             sText += sErrMsg + "\r\n";
     34 
     35             execWrite(sText);
     36         }
     37         catch { }
     38     }
     39     #endregion
     40 
     41     #region 记录日志内容
     42     /// <summary>
     43     /// 写日志(日志文件)
     44     /// </summary>
     45     /// <param name="sErrMsg">信息</param>
     46     private void execWriteRecord(string sMsg)
     47     {
     48         try
     49         {
     50             execWrite(execStringRecord(sMsg));
     51         }
     52         catch { }
     53     }
     54     #endregion
     55 
     56     #region 组合日志内容
     57     /// <summary>
     58     /// 组合日志内容
     59     /// </summary>
     60     /// <param name="sMsg">信息</param>
     61     /// <returns></returns>
     62     private string execStringRecord(string sMsg)
     63     {
     64         string sText = "";
     65         try
     66         {
     67             // 日志内容
     68             string sDateTime = DateTime.Now.ToString();
     69             sText += "[" + sDateTime + "]    ";
     70             sText += sMsg + "\r\n";
     71         }
     72         catch
     73         { return sMsg; }
     74         return sText;
     75     }
     76     #endregion
     77 
     78     #region 记录日志内容
     79     /// <summary>
     80     /// 写日志(日志文件)
     81     /// </summary>
     82     /// <param name="sErrMsg">信息</param>
     83     private void execWrite(string sMsg)
     84     {
     85         try
     86         {
     87             // 取得日志文件
     88             getRecordFile();
     89 
     90             //获得字节数组
     91             byte[] data = Encoding.Default.GetBytes(sMsg);
     92 
     93             //开始写入
     94             myStream.Write(data, 0, data.Length);
     95 
     96             //清空缓冲区、关闭流
     97             myStream.Flush();
     98         }
     99         finally
    100         {
    101             if (myStream != null)
    102             {
    103                 myStream.Close();
    104             }
    105         }
    106     }
    107     #endregion
    108 
    109     #region 取得日志文件名
    110 
    111     /// <summary>
    112     /// 取得日志文件名
    113     /// </summary>
    114     /// <returns>日志文件名</returns>
    115     private void getRecordFile()
    116     {
    117         // 单个日志文件大小(10M)
    118         int iSize = 1024 * 100;//1024 * 1024 * 10;
    119         if (myStream != null && myStream.CanWrite)
    120         {
    121             fFile = new FileInfo(myStream.Name);
    122             if (fFile.Length < iSize)
    123             {
    124                 return;
    125             }
    126         }
    127 
    128         // 日志文件夹
    129         string sFolder = Application.StartupPath + "\\Log\\";
    130 
    131         // 文件夹不存在时,创建文件夹
    132         DirectoryInfo dirFolder = new DirectoryInfo(sFolder);
    133         if (!dirFolder.Exists)
    134         {
    135             dirFolder.Create();
    136         }
    137 
    138         // 日志文件
    139         int i;
    140         string sDate = DateTime.Now.ToString("yyyyMMdd");
    141         string sFileName = "";
    142         for (i = 1; ; i++)
    143         {
    144             sFileName = sDate + "-" + i.ToString() + "-cLog.txt"//记事本格式
    145             fFile = new FileInfo(sFolder + sFileName);
    146             if (!fFile.Exists)
    147             {
    148                 // 日志文件不存在
    149                 myStream = fFile.Open(FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
    150                 break;
    151 
    152             }
    153             else if (fFile.Length < iSize)
    154             {
    155                 // 日志文件小于100K
    156                 try
    157                 {
    158                     myStream = fFile.Open(FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
    159                 }
    160                 catch
    161                 { }
    162 
    163                 break;
    164             }
    165             else
    166             {
    167                 if (myStream != null)
    168                 {
    169                     myStream.Close();
    170                 }
    171             }
    172         }
    173     }
    174     #endregion
    175 
    176     #region 写日志(二个参数)Public Static 方法
    177     /// <summary>
    178     /// 写日志(日志文件)
    179     /// </summary>
    180     /// <param name="sProcess">操作名</param>
    181     /// <param name="sErrMsg">异常信息</param>
    182     public static void execFileRecord(string sProcess, string sErrMsg)
    183     {
    184         myRecord.execWriteRecord(sProcess, sErrMsg);
    185     }
    186     #endregion
    187 
    188     #region 写日志(一个参数)  Public Static 方法
    189     /// <summary>
    190     /// 写日志(日志文件)
    191     /// </summary>
    192     /// <param name="sErrMsg">信息</param>
    193     public static void execFileRecord(string sMsg)
    194     {
    195         myRecord.execWriteRecord(sMsg);
    196     }
    197     #endregion
    198 
    199 }
    200 

    作者:chhuic

    出处:http://chhuic.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    git merge远程合并
    开发中必知必会的常用Linux命令
    mysql双机双向热备
    入门级实操教程!从概念到部署,全方位了解K8S Ingress!
    linux常用命令,你应该了解的Linux知识
    MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
    Java 表达式之谜:为什么 index 增加了两次?
    Vavr Option:Java Optional 的另一个选项
    一文详解 Java 的八大基本类型!
    如何找到真正的 public 方法
  • 原文地址:https://www.cnblogs.com/chhuic/p/1813381.html
Copyright © 2011-2022 走看看