菜鸟问题:如何在C#下面写log文件信息

happy_morning 2009-03-25 04:00:50
不好意思,我是一个初学者~
现在有这么一个问题:
代码以前的错误处理没有记log信息,现在需要记录log信息,G盘记录,有要求的形式,是:G:\AAA\YYYYDDMM.log
该如何实现呢~跪求答案!
太不好意思了,我学艺不精,问的问题实在初级,呵呵
麻烦大家写的详细些,我现在一头雾水,不胜感激啊~~
...全文
1134 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlhls 2010-03-30
  • 打赏
  • 举报
回复
学习一下
jwdream2008 2009-03-26
  • 打赏
  • 举报
回复
用.net自带的log4net写日志。
wk122348545 2009-03-26
  • 打赏
  • 举报
回复
mark
ztenv 2009-03-25
  • 打赏
  • 举报
回复
这是不完善的写法,不能真正的用于日志记录,否则会死得很惨。。。。。。
wujinjian2008n 2009-03-25
  • 打赏
  • 举报
回复
不明白写日志的好处,能否举个例子
mstchen88 2009-03-25
  • 打赏
  • 举报
回复

public static void WriteMyLog(Exception ex)
{
string LOG_FOLDER = AppDomain.CurrentDomain.BaseDirectory + "Log";
try
{
//日志文件路径
string filePath = LOG_FOLDER + "\\" + DateTime.Now.ToShortDateString() + ".log";
if (!System.IO.Directory.Exists(LOG_FOLDER))
{
Directory.CreateDirectory(LOG_FOLDER);
}
if (!File.Exists(filePath))//如果文件不存在
{
File.Create(filePath).Close();
}
StreamWriter sw = File.AppendText(filePath);
sw.WriteLine("-------------------------------------------------------------------------------------");
sw.WriteLine("Date:" + DateTime.Now.ToShortDateString() + " Time:" + DateTime.Now.ToShortTimeString());
sw.WriteLine(ex.Message);
sw.WriteLine(ex.StackTrace);
sw.Close();
}
catch
{ }

ztenv 2009-03-25
  • 打赏
  • 举报
回复
无语。。。。。。
ppyyhh 2009-03-25
  • 打赏
  • 举报
回复
需引入命名空间:using System.IO;

StreamWriter stream = new StreamWriter("G:\\AAA\\YYMMDD.log", true);
stream.WriteLine(DateTime.Now + ":");
stream.Flush();
stream.Close();

上面的代码前提是你在G盘已存在AAA文件夹,否则会出错。如果你不想先创建AAA而让程序自己去创建的话,你得写代码先判断是否存在AAA,不存在则先创建,存在则执行上面写日志的代码。
ztenv 2009-03-25
  • 打赏
  • 举报
回复
没有良好的日志机制是不完善的,没有良好的异常机制是难以维护的;
wujinjian2008n 2009-03-25
  • 打赏
  • 举报
回复
直接抛出来不就好了吗,干嘛那么麻烦???
nwgogogo 2009-03-25
  • 打赏
  • 举报
回复
如果在写日志的时候也发生异常就只能不于理会了.
nwgogogo 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 swalp 的回复:]
引用 2 楼 nwgogogo 的回复:
C# code
public static void WriteMyLog(Exception ex)
{
string LOG_FOLDER = AppDomain.CurrentDomain.BaseDirectory + "Log";
try
{
//日志文件路径
string filePath = LOG_FOLDER + "\\" + DateTime.Now.ToShortDateString() + ".log";
if (!System.IO.Directory.Exists(LOG_FOL…
[/Quote]
因为如果在写日志的时候也发生异常的话就只能不于理会了,不然你还要怎么处理呢?
ztenv 2009-03-25
  • 打赏
  • 举报
回复
网上搜一搜吧,很多的相关文章;
happy_morning 2009-03-25
  • 打赏
  • 举报
回复
如果用Log4net该怎么用啊~~
ztenv 2009-03-25
  • 打赏
  • 举报
回复
还是用Log4net.dll吧,很方便的;
swalp 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nwgogogo 的回复:]
C# code
public static void WriteMyLog(Exception ex)
{
string LOG_FOLDER = AppDomain.CurrentDomain.BaseDirectory + "Log";
try
{
//日志文件路径
string filePath = LOG_FOLDER + "\\" + DateTime.Now.ToShortDateString() + ".log";
if (!System.IO.Directory.Exists(LOG_FOLDER))
{

[/Quote]
不是在catch中写log吗?log一般是用来记录错误的吧
wujinjian2008n 2009-03-25
  • 打赏
  • 举报
回复
干嘛要创建日志,日志有什么用啊
wsmall1 2009-03-25
  • 打赏
  • 举报
回复
第一中方式:手写
定义文件操作类
using System;
using System.IO;

public Class Log
{
public static WriteLog(string msg)
{
try
{
string path = "你的文件的日志的路径";
FileStream fs = null;
if(File.Exist(path) //如果文件存在就追加日志记录
{
FileStream fs = new FileStream(path,FileAccess.Write, FileMode.Append);
}
else //如果不存在,就创建日志文件
{
FileStream fs = new FileStream(path,FileAccess.Write, FileMode.Create);
}
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(msg);
sw.Flush();
sw.Close();
fs.Close();
}
catch(Exception ex)
{
throw ex;
}
}

然后在你认为需要写日志的地方:
string msg = "日志内容"; //最好记录时间
Log.WriteLog(msg);

第二种方式使用log4n,这个超级简单而且好用
nwgogogo 2009-03-25
  • 打赏
  • 举报
回复

public static void WriteMyLog(Exception ex)
{
string LOG_FOLDER = AppDomain.CurrentDomain.BaseDirectory + "Log";
try
{
//日志文件路径
string filePath = LOG_FOLDER + "\\" + DateTime.Now.ToShortDateString() + ".log";
if (!System.IO.Directory.Exists(LOG_FOLDER))
{
Directory.CreateDirectory(LOG_FOLDER);
}
if (!File.Exists(filePath))//如果文件不存在
{
File.Create(filePath).Close();
}
StreamWriter sw = File.AppendText(filePath);
sw.WriteLine("-------------------------------------------------------------------------------------");
sw.WriteLine("Date:" + DateTime.Now.ToShortDateString() + " Time:" + DateTime.Now.ToShortTimeString());
sw.WriteLine(ex.Message);
sw.WriteLine(ex.StackTrace);
sw.Close();
}
catch
{ }
wujinjian2008n 2009-03-25
  • 打赏
  • 举报
回复
xue xi

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧