예제 #1
0
    //on Windows since 1.4.10
    public static void Start()
    {
        //first define console will be used.
        //if writer is created ok, then console will NOT be used
        useConsole = true;

        //create dir if not exists
        string dir = UtilAll.GetLogsDir();

        if (!Directory.Exists(dir))
        {
            try {
                Directory.CreateDirectory(dir);
            } catch {
                return;
            }
        }

        string filename    = UtilAll.GetLogFileCurrent();
        string filenameOld = UtilAll.GetLogFileOld();

        //if exists, copy to old
        if (File.Exists(filename))
        {
            try {
                File.Copy(filename, filenameOld, true);                 //can be overwritten
            } catch {}
        }

        /*
         * try {
         *      writer = File.CreateText(filename);
         *      useConsole = false;
         * } catch {}
         */


        //this does not write until exit
        //StreamWriter sw = new StreamWriter(new BufferedStream(new FileStream(UtilAll.GetLogFileCurrent(), FileMode.Create)));

        //this writes all the time
        StreamWriter sw = new StreamWriter(new FileStream(UtilAll.GetLogFileCurrent(), FileMode.Create));

        System.Console.SetOut(sw);
        System.Console.SetError(sw);
        sw.AutoFlush = true;
    }