当前位置:编程学习 > C#/ASP.NET >>

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 楼 hhqsy 的回复:
C# code

#region 日志相关
        /// <summary>
        /// 写日志文件
        /// </summary>
        /// <param name="log"></param>
        public static void WriteLog(string log)
        {
            stri……

3楼朋友,这么写不是手写log文件嘛。。不是用log4net进行异常日志管理啊~   不知道是不是我不懂你的意思。。还是你的意思没有表达清楚,  利用log4net进行写日志,我用的是配置xml的方式,当然手改log4net内部的代码方法再生成新的log4net.dll文件我倒是没去试过和研究 我只是不明白为什么正常的打印日志都没有问题,但是突然会偶尔出现一个这样的日志文件名称:Logs_2011-10-13.txtLogs_2011-10-13.txt  --------------------编程问答--------------------
引用 5 楼 javakeikei 的回复:
引用 3 楼 hhqsy 的回复:

C# code

#region 日志相关
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log"></param>
public static void WriteLog(string log)
{
stri……

3楼朋友,这么写不是手写log文件嘛。。不是用log……
手写?程序写的,不是我手写的,你说的手写是指什么? --------------------编程问答--------------------
引用 6 楼 hhqsy 的回复:
引用 5 楼 javakeikei 的回复:
引用 3 楼 hhqsy 的回复:

C# code

#region 日志相关
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log"></param>
public static void WriteLog(string log)
{
stri……

3楼……

程序不是都是手写的么???? --------------------编程问答--------------------
引用 7 楼 hhqsy 的回复:
引用 6 楼 hhqsy 的回复:
引用 5 楼 javakeikei 的回复:
引用 3 楼 hhqsy 的回复:

C# code

#region 日志相关
/// <summary>
/// 写日志文件
/// </summary>
/// <param name="log"></param>
public static void WriteLog(string l……


额 我说的是咱们自己动手写的 不是调用log4net进行的日志管理。。。 --------------------编程问答-------------------- log4net的记录实现,基本也是这个原理 --------------------编程问答--------------------
引用 9 楼 hhqsy 的回复:
log4net的记录实现,基本也是这个原理


额,你这不等于没说嘛。 只不过封装起来了。。我问的是 用过log4net的人,出现名字追加的原因  怎么样可以避免名字追加! --------------------编程问答--------------------
引用 10 楼 javakeikei 的回复:
引用 9 楼 hhqsy 的回复:

log4net的记录实现,基本也是这个原理


额,你这不等于没说嘛。 只不过封装起来了。。我问的是 用过log4net的人,出现名字追加的原因 怎么样可以避免名字追加!
那log4net我没用过。既然可以自己写,格式内容也可以自己定,又不是很难,为嘛还要依赖那个控件里的呢 --------------------编程问答-------------------- 它封装好了的方法显然也没那么容易改 --------------------编程问答-------------------- mark --------------------编程问答--------------------
引用 13 楼 oneatree 的回复:
mark


O(∩_∩)O~~ 顶上去 求人解决 --------------------编程问答-------------------- 学习了。 --------------------编程问答--------------------
引用 12 楼  的回复:
它封装好了的方法显然也没那么容易改

不介意我翻尸吧?为什么要用log4net?原因很简单,它是单线程写,不会冲突,你这种并发一大就完蛋了,漏写很多的 --------------------编程问答-------------------- 再说楼主的问题,没办法解决,那是因为你当时非正常退出导致的,你应该是直接修改了Bin目录的文件导致log4net不正常shutdown
引用楼主  的回复:
最近学习,做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_2……
--------------------编程问答-------------------- 没用过文件的,从来都是放在数据库里记录,比较方便,也容易查询。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,