0

我的应用程序是使用 C# winforms .net 4.0 设计的。

我的应用程序创建了自己的日志文件,这是以编程方式

created 表示应用程序本身在设置时创建它。文件夹结构为 AppData->MyApp->MyApp1->logging.log。

卸载应用程序时,只需删除此文件。

我怎样才能做到这一点?请有人帮助我。

 private const string LOG_FILE = "logging";
 private const string LOG_FILE_EXT = ".log";
 m_strGeneralFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Config.APPDATA_PATH;


public void CheckLogFile()
    {
        string file = Config.LOG_FILE;
        m_strLogfile = Config.LOG_FILE + Config.LOG_FILE_EXT;


        if (File.Exists(m_strGeneralFilePath + file + Config.LOG_FILE_EXT))
        {
            long logFileStreamLength = 0;
            using (Stream logFileStream = new FileStream(m_strGeneralFilePath + file + Config.LOG_FILE_EXT, FileMode.Open, FileAccess.Read))
            {
                logFileStreamLength = logFileStream.Length;
                logFileStream.Flush();
                logFileStream.Close();
            }
            //configure a default value if user does not specify the value
            if (string.IsNullOrEmpty(logSize))
            {
                logSize = "1000000";//1MB will the default log file size
            }
            if (logFileStreamLength > Convert.ToInt32(logSize)) // approx. 1MB 1.000.000
            {
                for (int i = 9; i > 0; i--)
                {
                    if (i == 9)
                    {
                        if (File.Exists(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT))
                        {
                            File.Delete(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT);
                        }
                        continue;
                    }
                    if (File.Exists(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT))
                    {
                        System.IO.File.Move(m_strGeneralFilePath + Config.LOG_FILE + i + Config.LOG_FILE_EXT, m_strGeneralFilePath + Config.LOG_FILE + (i + 1) + Config.LOG_FILE_EXT);
                    }
                }
                System.IO.File.Move(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT, m_strGeneralFilePath + Config.LOG_FILE + "1" + Config.LOG_FILE_EXT);

                using (FileStream fs = File.Create(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT))
                {
                    fs.Flush();
                    fs.Close();
                }

            }
        }
        else
        {
            using (FileStream fs = File.Create(m_strGeneralFilePath + Config.LOG_FILE + Config.LOG_FILE_EXT))
            {
                fs.Flush();
                fs.Close();
            }
        }


    }

谢谢,

鲁皮尼

4

1 回答 1

0

这是log4net.dll的内置功能 您可以根据需要删除日志文件。

于 2013-09-19T06:05:58.667 回答