最基础的记录日志代码
2011-12-30 16:05
225 查看
/// 一个非常小的系统需要记录系统日志文件,要求按天建立文件夹,将当天的日志文件放在当天文件夹内
/// 每个日志文件的大小不超过指定的大小,例如5M,超过大小限制时,创建新的日志文件记录日志
/// 当前代码存在一个获取文件大小的问题,暂时没有找到好的解决办法,有没有其他好的办法?
/// 实现代码如下:
/// 每个日志文件的大小不超过指定的大小,例如5M,超过大小限制时,创建新的日志文件记录日志
/// 当前代码存在一个获取文件大小的问题,暂时没有找到好的解决办法,有没有其他好的办法?
/// 实现代码如下:
public static class SystemLog { /// <summary> /// 写入日志 /// </summary> /// <param name="log">需要记录的日志内容</param> public static void WriteLog(string log) { try { Stream stream = File.Open(CheckFile(), FileMode.Append); StreamWriter sw = new StreamWriter(stream); sw.Write(log); sw.Close(); stream.Close(); } catch (Exception e) { //日志文件存在IO读写权限等限制 //出现读写日志BUG时,需要以其他方法记录系统BUG Console.WriteLine(e.Message); } } /// <summary> /// 检查目前日志文件的记录情况,保证每个日志文件的大小不超过5M /// 日志文件按天分文件夹存储,当天的日志文件超过5M时,在文件夹新建日志文件 /// </summary> /// <returns></returns> private static string CheckFile() { //文件夹地址 string appPath = System.Windows.Forms.Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMdd"); string filePath = string.Empty; if (!Directory.Exists(appPath)) { DateTime now = DateTime.Now; Directory.CreateDirectory(appPath); Directory.SetLastAccessTime(appPath, now); filePath = appPath + "\\" + now.ToString("yyyyMMddHHmmss") + ".log"; FileStream fs = File.Create(filePath); fs.Close(); } else { DateTime lastAccessTime = Directory.GetLastAccessTime(appPath); filePath = appPath + "\\" + lastAccessTime.ToString("yyyyMMddHHmmss") + ".log"; //这里在获取文件大小时需要打开文件获取字节流后关闭文件 //需要采用其他方法获取文件大小,以提高效率 if (File.ReadAllBytes(filePath).Length >= 5242880) { try { DateTime now = DateTime.Now; Directory.SetLastAccessTime(appPath, now); filePath = appPath + "\\" + now.ToString("yyyyMMddHHmmss") + ".log"; FileStream fs = File.Create(filePath); fs.Close(); } catch (IOException e) { //如果文件夹处于打开状态,则该属性无法写入文件夹 //系统包IOException错误,下面需要以其他方法记录BUG Console.WriteLine(e.Message); } } } return filePath; } }
相关文章推荐
- 【代码全】使用SpringAOP编写日志记录(插入oracle数据库中)
- salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
- IIS6.0日志文件分析代码_2生成访问记录到文本文件
- IIS W3C日志记录字段和HTTP状态代码的说明
- 基础服务---secure日志记录
- python基础3(自学代码记录)
- java使用动态代理来实现AOP(日志记录)的实例代码
- JAVA代码—算法基础:学生出勤记录问题
- IIS6.0日志文件分析代码_2生成访问记录到文本文件
- 调用通讯录代码,由于本人新手,写此日志记录
- log4net使用C#代码配置文件名,记录日志
- 3.11 第一次做伪代码的记录(最基础的算法)
- IIS W3C日志记录字段和HTTP状态代码的说明
- VC记录日志通用代码
- java使用动态代理来实现AOP(日志记录)的实例代码
- python基础3-1(自学代码记录)
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)
- 分享自己的PHP操作记录日志代码
- IIS6.0日志文件分析代码_2生成访问记录到文本文件
- 在Java中处理日志记录-Java基础-Java-编程开发