首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务日志无法工作

服务日志无法工作
EN

Stack Overflow用户
提问于 2014-09-18 08:56:36
回答 1查看 28关注 0票数 0

我正在尝试向服务添加一些日志功能,但是我希望它创建一个新的日志,将旧的日志复制到新的日志中,并删除原始日志。

Sudo for ClearLog:如果log1完全创建log2,则删除log1的内容

请参阅下面的代码,目前ClearLog函数没有做我想做的事情。

有人能看出我做错了什么吗?

代码语言:javascript
复制
        public static void WriteLog(string txt)
    {
        string fp = _AppPath + @"\Logging";
        try
        {
            File.AppendAllText(fp + @"\Log1.txt", txt);
        }
        catch (IOException iex)
        {
            Debug.Print("Error writing log" + iex.ToString());
        }
    }
    private static void ClearLog()
    {
        string fp = _AppPath + @"\Logging";
        try
        {
            if (!File.Exists(fp + @"\Log1.txt"))
            {
                WriteErrorLog("");
            }
            else
            {
                File.AppendAllText(fp + @"\Log1.txt", fp + @"\Log2.txt");
                File.Delete(fp + @"\Log1.txt");
                WriteLog("");
            }
        }
        catch (Exception ex)
        {
            WriteLog("Clear log failed " + ex.ToString());
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 09:00:37

尝试创建文件路径的公共静态字段,因为您要打开同一文件两次。

IE:public static string logfp = _AppPath + @"\Logging";

然后将这两个函数中的所有内容重新命名为logfp。

改进的示例(可以在两者中使用路径,也可以在整个过程中声明路径)

代码语言:javascript
复制
        private static void ClearLog()
    {
        string logfp = _AppPath + @"\Logging";
        try
        {
            if (File.Exists(logfp + @"\Log2.txt"))
            {
                File.Delete(logfp + @"\Log2.txt");

                if (File.Exists(logfp + @"\Log1.txt"))
                {
                    File.Copy(logfp + @"\Log1.txt", logfp + @"\Log2.txt");
                    File.Delete(logfp + @"\Log1.txt");
                }
                else
                {
                    File.AppendAllText(logfp + @"\Log1.txt", "New Log created: " + DateTime.Now.ToString());//showing you when it was created
                }
            }
            else
            {
                File.Copy(logfp + @"\Log1.txt", logfp + @"\Log2.txt");
                File.Delete(logfp + @"\Log1.txt");
            }
        }
        catch (Exception ex)
        {
            WriteErrorLog("Clear log failed " + ex.ToString());
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25908317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档