C# 简单的往txt中写日志,调试时很有用

原文 http://blog.csdn.net/hejialin666/article/details/6106648

有些程序在调试时很难抓住断点(如服务程序),有些程序需要循环无数次,要看每一次或某一次的结果,等等吧!

那就来个简单的写日志程序吧,txt文件生成在debug目录里

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace Common
{
public class Log
{
private string logFile;
private StreamWriter writer;
private FileStream fileStream = null;

public Log(string fileName)
{
logFile = fileName;
CreateDirectory(logFile);
}

public void log(string info)
{

try
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(logFile);
if (!fileInfo.Exists)
{
fileStream = fileInfo.Create();
writer = new StreamWriter(fileStream);
}
else
{
fileStream = fileInfo.Open(FileMode.Append, FileAccess.Write);
writer = new StreamWriter(fileStream);
}
writer.WriteLine(DateTime.Now + ": " + info);

}
finally
{
if (writer != null)
{
writer.Close();
writer.Dispose();
fileStream.Close();
fileStream.Dispose();
}
}
}

public void CreateDirectory(string infoPath)
{
DirectoryInfo directoryInfo = Directory.GetParent(infoPath);
if (!directoryInfo.Exists)
{
directoryInfo.Create();
}
}
}
}

  

用的时候:

Log log = new Log(AppDomain.CurrentDomain.BaseDirectory + @"/log/Log.txt");

log.log("内容");

时间: 2024-10-11 04:20:35

C# 简单的往txt中写日志,调试时很有用的相关文章

程序写日志文件时该不该加锁

程序写日志文件时该不该加锁 日志(log) 为了让自己的思路更加清晰,下面我都会称日志为 log.因为日志这个词有两种含义,详情见百度百科释义或者维基百科释义. 日记的另一种说法.“志”字本身为“记录”的意思,日志就为每日的记录(通常是跟作者有关的). 服务器日志(server log),记录服务器等电脑设备或软件的运作. 我们这里说的当然是服务器日志,也就是  server log . 写入 log 一般写入 log 都会遵循以下步骤: int fd = open(path)write(fd,

python中写日志log

import nnlog log = nnlog.Logger('test.log',level='error',backCount=5,when='D') #默认是debug级别最低的,默认保留5天的backCount when='D' # D H M S D=天,H=小时,M=分钟 S=秒 log.debug('返回结果...')#一些调试信息,看变量值这些log.info('info...') #一些提示信息log.warning('waring')#出警告了log.error('erro

Linux往log中写日志

void writelog(const char* log) { time_t tDate; struct tm* eventTime; time(&tDate);//得到系统当前时间 //将time_数据类型转换为struct tm结构 eventTime = localtime(&tDate); //年,以1900年作为起始值.如果当前年为1991,则year变量=1 int year = eventTime->tm_year + 1900; //月:tm_mon从0开始计算 i

mybatis中写sql语句时需要转义的字符

mybatis配置文件,sql语句中含有转义字符: 错误语句: select * from table_base where flag_topic  & #{topic_num} 错误信息: Caused by: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 54; The entity name must immediately follow the '&' in the entity reference. 正确语

多线程读取大文件,尤其是对日志文件分析很有用。

我在之前的公司里工作的时候,他们要求我做一个能够分析IIS日志的程序,可我做来做去,也只能做到,1个G的文件读取在140秒左右.愁了很久,想到了用多线程读取大文件的方法,又发现文件读取流可以有很多个,于是我就开始编写,写出来,其效率 4核CPU,可以达到14秒,提高了10倍. 而且据我测试发现,我4个CPU,用8个线程读取效率最高,所以我想会不会是一个CPU挂2个文件流效率最高,故基本逻辑是这样的,我根据CPU核数,将文件分成8块,分成8块的时候,必定出现,一行被截断的情况,针对这种情况,我采用

cpp编程中不太知道又很有用的知识点

一.extern 语法 extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义.另外,extern也可用来进行链接指定. 1.当两个文件同时存在一个相同名字的变量名时,单独编译时可以通过,但当两者进行链接时,无法通过编译.因为链接之后就表示这是一个程序,而一个程序不能存在两个相同名字的变量. 这时可以使用 extern 告诉其中某个文件使用另一个文件的那个相同名字的变量. 2.extern "C"  

C# 超高速高性能写日志 代码开源

1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到的. 2.解决方案 2.1.简单原理说明 使用列队先缓存到内存,然后我们一直有个线程再从列队中写到磁盘上,这样就可以高速高性能的写日志了.因为速度慢的地方我们分离出来了,也就是说程序在把日志扔给列队后,程序的日志部分就算完成了,后面操作磁盘耗时的部分程序是不需要关心的,由另一个线程操作. 俗话说,鱼和熊掌

NodeJS写日志_Log4js使用详解

今天和大家分享一下NodeJS中写日志的一个常用第三方包:Log4js. 跟随主流Blog特色,先简单介绍下Log4js的基本信息.介绍Log4js之前,需要先说一下Log4***,Log4***是由Apache提供的多平台下多语言下日志书写扩展包,目的很简单就是使日志书写更加方便简洁,同时对不同的业务日志能够进行灵活的分文件记录,同时也包含着详细的等级配置,为之后分级输出,检索,及程序自动解析提供更加便捷的支持(一家之言,非官方描述,领会精神).Log4***有很多语言的实现,比如Log4cp

ns3 Tutorial 中的日志模块(翻译)

转载地址:http://blog.sina.com.cn/s/blog_8ecca79b0101d7fe.html 1  日志模块的使用 在运行 first.cc 脚本时,我们已经简单了解了日志模块.现在,我们将更深入地了解日志子系统是为哪些用户案例设计的. 1.1 日志概述 很多大型系统支持某种消息记录功能,ns3 也不例外.在某些情况下,只有错误消息会被记录到操作控制台(在基于 Unix 的系统中通常是标准错误输出).在其他系统中,警告消息可能跟详细的信息消息一起被输出.在某些情况下,日志功