log4net日志名称追加问题
最近学习,做c#的开发,用到了Log4Net这样一个日志管理!当一切设置好之后,日志可以正常显示,以及备份!
我是按大小,如果大于10MB 就进行备份!按时间的变更进行显示
如下所示:
Logs_2011-10-10.txt.1
Logs_2011-10-10.txt.2
Logs_2011-10-10.txt.3
Logs_2011-10-10.txt.4
Logs_2011-10-10.txt.5
Logs_2011-10-11.txt
Logs_2011-10-12.txt
Logs_2011-10-13.txtLogs_2011-10-13.txt 为什么突然蹦出一个文件名称追加bug?
Logs_2011-10-13.txt
Logs_2011-10-14.txt
也百度了很长时间,也有人提出同样地问题,但是一直没有解决答案! 如果哪位高手曾经遇到过,或者知道是什么原因请告诉我, 本人现在是很纠结、很纠结! --------------------编程问答-------------------- 不会,占个位置学习学习
--------------------编程问答-------------------- 你不写怎么会追加? --------------------编程问答--------------------
--------------------编程问答-------------------- 学习一下,谢谢分享 --------------------编程问答--------------------
#region 日志相关
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log"></param>
public static void WriteLog(string log)
{
string filename = GetAppPath() + "Log" + DateTime.Today.ToString("yyyyMMdd") + ".log";
WriteLog(log, filename);
}
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log">日志字符串</param>
/// <param name="filename">日志文件名(包含完整路径)</param>
public static void WriteLog(string log, string filename)
{
try
{
StreamWriter sw = File.AppendText(filename);
sw.WriteLine(log);
sw.Flush();
sw.Close();
}
catch
{}
}
#endregion
#region 操作系统常用信息获取
/// <summary>
/// 获取当前路径
/// </summary>
/// <returns></returns>
public static string GetAppPath()
{
string path = AppDomain.CurrentDomain.BaseDirectory + @"\";
return path.Replace(@"\\", @"\");
}
3楼朋友,这么写不是手写log文件嘛。。不是用log4net进行异常日志管理啊~ 不知道是不是我不懂你的意思。。还是你的意思没有表达清楚, 利用log4net进行写日志,我用的是配置xml的方式,当然手改log4net内部的代码方法再生成新的log4net.dll文件我倒是没去试过和研究 我只是不明白为什么正常的打印日志都没有问题,但是突然会偶尔出现一个这样的日志文件名称:Logs_2011-10-13.txtLogs_2011-10-13.txt --------------------编程问答-------------------- 手写?程序写的,不是我手写的,你说的手写是指什么? --------------------编程问答--------------------
程序不是都是手写的么???? --------------------编程问答--------------------
额 我说的是咱们自己动手写的 不是调用log4net进行的日志管理。。。 --------------------编程问答-------------------- log4net的记录实现,基本也是这个原理 --------------------编程问答--------------------
额,你这不等于没说嘛。 只不过封装起来了。。我问的是 用过log4net的人,出现名字追加的原因 怎么样可以避免名字追加! --------------------编程问答-------------------- 那log4net我没用过。既然可以自己写,格式内容也可以自己定,又不是很难,为嘛还要依赖那个控件里的呢 --------------------编程问答-------------------- 它封装好了的方法显然也没那么容易改 --------------------编程问答-------------------- mark --------------------编程问答--------------------
O(∩_∩)O~~ 顶上去 求人解决 --------------------编程问答-------------------- 学习了。 --------------------编程问答--------------------
不介意我翻尸吧?为什么要用log4net?原因很简单,它是单线程写,不会冲突,你这种并发一大就完蛋了,漏写很多的 --------------------编程问答-------------------- 再说楼主的问题,没办法解决,那是因为你当时非正常退出导致的,你应该是直接修改了Bin目录的文件导致log4net不正常shutdown
--------------------编程问答-------------------- 没用过文件的,从来都是放在数据库里记录,比较方便,也容易查询。
补充:.NET技术 , C#