底层代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace AddLog
  7. {
  8. /// <summary>
  9. /// 记录:文件以时间命名
  10. /// </summary>
  11. public class Log
  12. {
  13. private static System.IO.StreamWriter swt;
  14. private static System.IO.FileStream fs;
  15. /// <summary>
  16. /// 判断文件是否存在
  17. /// </summary>
  18. private static bool IsExsFile = false;
  19. public static void Init()
  20. {
  21. Init("");
  22. }
  23. /// <summary>
  24. /// 记录初始化
  25. /// </summary>
  26. /// <param name="DirName">文件夹名字:默认为Log</param>
  27. public static void Init(string DirName)
  28. {
  29. string LogPath = string.Empty;
  30. if (!string.IsNullOrWhiteSpace(DirName))
  31. {
  32. LogPath = Environment.CurrentDirectory + "\\" + DirName;
  33. }
  34. else
  35. {
  36. LogPath = Environment.CurrentDirectory + "\\Log";
  37. }
  38. if (!System.IO.Directory.Exists(LogPath))
  39. {
  40. System.IO.Directory.CreateDirectory(LogPath);
  41. }
  42. string LogFile = LogPath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
  43.  
  44. if (!System.IO.File.Exists(LogFile))
  45. {
  46. fs = new System.IO.FileStream(LogFile, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
  47. swt = new System.IO.StreamWriter(fs, Encoding.UTF8);
  48. }
  49. else
  50. {
  51. IsExsFile = true;
  52. swt = new System.IO.StreamWriter(LogFile,true);
  53. }
  54.  
  55. }
  56. /// <summary>
  57. /// 清除缓存
  58. /// </summary>
  59. public static void Clear()
  60. {
  61. swt.Flush();
  62. swt.Close();
  63. swt.Dispose();
  64. if(!IsExsFile)
  65. {
  66. fs.Close();
  67. fs.Dispose();
  68. }
  69.  
  70. }
  71. /// <summary>
  72. /// 写操作
  73. /// </summary>
  74. /// <param name="strTxt">写入文本</param>
  75. public static void Write(string strTxt)
  76. {
  77. if (swt != null)
  78. {
  79. swt.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + strTxt);
  80. }
  81. }
  82. }
  83. }

调用代码:

  1. AddLog.Log.Init();
  2. AddLog.Log.Write("测试");
  3. AddLog.Log.Clear();

Asp.Net写文本日志的更多相关文章

  1. C#写文本日志帮助类(支持多线程)改进版(不适用于ASP.NET程序)

    由于iis的自动回收机制,不适用于ASP.NET程序 代码: using System; using System.Collections.Concurrent; using System.Confi ...

  2. C#写文本日志帮助类(支持多线程)

    代码: using System; using System.Configuration; using System.IO; using System.Threading.Tasks; namespa ...

  3. glog另启动线程写文本日志

    glog本身是很高效的,google的大牛肯定知道大规模的写日志用glog的话肯定会影响业务线程的处理,带负荷的磁盘IO谁都桑不起.比方levelDB就是默认异步写,更不用说google的三驾马车都是 ...

  4. 如何将Unicode文本写到日志文件中

    有时为了定位问题,我们需要结合打印日志来处理.特别是较难复现的,一般都需要查看上下文日志才能找出可能存在的问题.考虑到程序要在不同语言的操作系统上运行,程序界面显示要支持Unicode,打印出来的日志 ...

  5. asp.net MVC4 lognet4 日志

    asp.net MVC4 lognet4 日志 步骤: 1.引入log4net.dll 2.写配置文件 web.config 加入 如下代码 在<configSections> 中加入&l ...

  6. SQLite 预写式日志

    SQLite在3.7.0版本引入了WAL (Write-Ahead-Logging),WAL的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,引入WAL机制之 ...

  7. 预写式日志WAL

    Chapter 25. 预写式日志(Write-Ahead Logging (WAL)) Table of Contents 25.1. WAL 的好处 25.2. WAL 配置 25.3. 内部 预 ...

  8. Spring AOP 实现写事件日志功能

    什么是AOP?AOP使用场景?AOP相关概念?Spring AOP组件?如何使用Spring AOP?等等这些问题请参考博文:Spring AOP 实现原理 下面重点介绍如何写事件日志功能,把日志保存 ...

  9. 用ASP.Net写一个发送ICQ信息的程序

    用ASP.Net写一个发送ICQ信息的程序 这里我给大家提供一个很实用的例子,就是在线发送ICQ信息.想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊.呵呵,在吹牛啊,其实ICQ本来就 ...

随机推荐

  1. DLL中传递STL参数,vector对象作为dll参数传递等问题(转)

    STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下 ...

  2. Binary String Matching(kmp+str)

    Binary String Matching 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Given two strings A and B, whose alp ...

  3. VS2010+Visual Assist X

    以前一直用VC++6.0,配一个VA,感觉也挺好用的.今天安装了VS2010,感觉还是有点不适应.然后安装了一个 Visual Assist X,主要是VS2010下破解VA有点小麻烦,中途也出现了一 ...

  4. JavaWeb Filter--过滤器 简介

    本文转载自:http://blog.csdn.net/wanghuan203/article/details/7325651 过滤器就是在源数据和目的数据之间起过滤作用的中间件. Web应用中,在处理 ...

  5. Mantis Administrator控制密码、注册不用邮件验证、添加测试员[Z]

    Mantis默认安装完成后,管理员创建用户,但无法设置用户密码,只有通过邮件由用户自行修改.无法适应某些没有统一邮箱的情况,现将关闭邮箱验证方法和管理员设置用户密码方法验证通过   不用邮件验证: c ...

  6. 状态压缩DP------学习小记

    状态DP主要用的还是DP思想,顾名思义,加了一个状态,主要是用来求状态个数的. 状态是用二进制数来表示的,也就是用0或1来表示,每一行有一个状态数,就是由这一行的0或1组成的,首先我们要获得每行的状态 ...

  7. BOOST CHRONO steadycolock::now分析

    一直觉得boost的时间库不是很好用,当然,也有可能是我没有深入理解,所以,把代码弄出来看看或许要好些,时间处理中,取当前时间真的是太常见,而boost中各种clock又区分不清楚,然而,代码能说明一 ...

  8. 加密传输SSL协议4_综合方案

    隔了那么多天终于有时间继续把这个专题做完了,这次一定连续写完这方面的笔记. 上篇博文说明了非对称加密和对称加密各自的优缺点,那么就很自然的衍生出了一种综合的方案. 两种方案的结合--扬长避短 首先发送 ...

  9. 解决Ubuntu DNS解析慢、上网速度慢

    自从ubuntu升级到10.04后,上网速度感觉变慢了很多(ADSL),原因也众说分云,有说是firefox浏览器造成的,于是用chrome访问,速度依然很慢,可见不是由于浏览器造成的. 网速慢, 是 ...

  10. Fragment和activity之间的通信

    1>fragment可以调用getactivity()方法获取它所在的activity. 2>activity可以调用FragmentManager的findFragmentById()或 ...