Asp.Net写文本日志

底层代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddLog
{
    /// <summary>
    /// 记录:文件以时间命名
    /// </summary>
    public class Log
    {
        private static System.IO.StreamWriter swt;
        private static System.IO.FileStream fs;
        /// <summary>
        /// 判断文件是否存在
        /// </summary>
        private static bool IsExsFile = false;
        public static void Init()
        {
            Init("");
        }
        /// <summary>
        /// 记录初始化
        /// </summary>
        /// <param name="DirName">文件夹名字:默认为Log</param>
        public static void Init(string DirName)
        {
            string LogPath = string.Empty;
            if (!string.IsNullOrWhiteSpace(DirName))
            {
                LogPath = Environment.CurrentDirectory + "\\" + DirName;
            }
            else
            {
                LogPath = Environment.CurrentDirectory + "\\Log";
            }
            if (!System.IO.Directory.Exists(LogPath))
            {
                System.IO.Directory.CreateDirectory(LogPath);
            }
            string LogFile = LogPath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";

            if (!System.IO.File.Exists(LogFile))
            {
                fs = new System.IO.FileStream(LogFile, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
                swt = new System.IO.StreamWriter(fs, Encoding.UTF8);
            }
            else
            {
                IsExsFile = true;
                swt = new System.IO.StreamWriter(LogFile,true);
            }

        }
        /// <summary>
        /// 清除缓存
        /// </summary>
        public static void Clear()
        {
            swt.Flush();
            swt.Close();
            swt.Dispose();
            if(!IsExsFile)
            {
                fs.Close();
                fs.Dispose();
            }

        }
        /// <summary>
        /// 写操作
        /// </summary>
        /// <param name="strTxt">写入文本</param>
        public static void Write(string strTxt)
        {
            if (swt != null)
            {
                swt.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + strTxt);
            }
        }
    }
}

调用代码:

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

时间: 2024-11-09 09:47:48

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

glog另启动线程写文本日志

glog本身是非常高效的,google的大牛肯定知道大规模的写日志用glog的话肯定会影响业务线程的处理,带负荷的磁盘IO谁都桑不起.比如levelDB就是默认异步写,更不用说google的三驾马车都是分布式的.之前看过其论文,简直是引领时代. 在glog的issue里有人提出了异步写的问题,但是语焉不详,不过0.33版本已经有了接口,但是还不友好,但是完全可以实现磁盘日志的异步写. 今天算是花了点时间踩了点坑,算是基本可以搞了.稳定之后会把这个版本和glog,g2log,mudo loggin

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

using System;using System.Configuration;using System.IO;using System.Threading; namespace FQDService.Utils{ /// <summary> /// 写日志类 /// </summary> public class FileLogger { #region 字段 public static readonly object _lock = new object(); #endregi

C#写文本日志帮助类

代码: using System; using System.Configuration; using System.IO; using System.Threading; namespace FQDService.Utils { /// <summary> /// 写日志类 /// </summary> public class FileLogger { #region 字段 public static readonly object _lock = new object();

我们是这样写升级日志的,处处可以体现人文情怀

做软件,特别是SaaS软件,一般都会把升级日志公布给用户.让用户知道每次都升级了哪些内容.传统的格式无非是: 1.新增了某某按钮 2.修改了无法保存的错误 3.... 我们稍微给升级内容加入了人文情怀.升级日志本来就是开发者与用户的沟通的一个载体,何不写的轻松点呢?请看我们的做法. 超级表格已经升级多次了.直到本次升级,我们公布了升级内容.内容是这样写的: 2014-05-26:这是我第一次记录升级内容,以后每次升级都会在这里累计记录-------------------------------

Asp.net 使用log4net日志功能

Asp.net使用log4net日志功能 1. 在bin文件夹下面引入 log4net.dll.你只需要引入log4net.dll 既可,其他dll是我抠图的时候扣多了 2 . Global.asax 中加入 void Application_Start(object sender,EventArgs e) { // 在应用程序启动时运行的代码 log4net.Config.DOMConfigurator.Configure(); } 3.修改配置文件(web.config) log日志既可以写

SQLite 预写式日志

SQLite在3.7.0版本引入了WAL (Write-Ahead-Logging),WAL的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,引入WAL机制之前,SQLite使用rollback journal机制实现原子事务.       rollback journal机制的原理是:在修改数据库文件中的数据之前,先将修改所在分页中的数据备份在另外一个地方,然后才将修改写入到数据库文件中:如果事务失败,则将备份数据拷贝回来,撤销修改:如果事务成功,则删

python 提交SVN 写更新日志

SCENE = "mjdy_dyhry" DIRS = { "md5/scenes/" + SCENE, "data/tex/scenes/" + SCENE, "data/tex/share", "data/mesh/scenes/" + SCENE, } import os WORKSPACE = "D:/workspace/muData/"#os.getcwd()+ # execu

预写式日志WAL

Chapter 25. 预写式日志(Write-Ahead Logging (WAL)) Table of Contents 25.1. WAL 的好处 25.2. WAL 配置 25.3. 内部 预写式日志 (WAL) 是一种实现事务日志的标准方法.有关它的详细描述可以在大多数(如果不是全部的话)有关事务处理的书中找到. 简而言之,WAL 的中心思想是对数据文件的修改(它们是表和索引的载体)必须是只能发生在这些修改已经记录了日志之后, 也就是说,在描述这些变化的日志记录冲刷到永久存储器之后.

Chapter 11.预写式日志(Write-Ahead Logging (WAL)

11.1. 一般性描述 预写式日志 (WAL) 是一种实现事务日志的标准方法.有关它的详细描述可以在 大多数(如果不是全部的话)有关事务处理的书中找到. 简而言之,WAL 的中心思想是对数据文件 的修改(它们是表和索引的载体)必须是只能发生在这些修改已经 记录了日志之后 -- 也就是说,在日志记录冲刷到永久存储器之后. 如果我们遵循这个过程,那么我们就不需要在每次事务提交的时候 都把数据页冲刷到磁盘,因为我们知道在出现崩溃的情况下, 我们可以用日志来恢复数据库:任何尚未附加到数据页的记录 都将先