Beispiel #1
0
        /// <summary>
        /// 写入新日志,根据指定的日志对象Msg
        /// </summary>
        /// <param name="msg">日志内容对象</param>
        private void LogWrite(Msg msg)
        {

            //enum 类型 等同 (int)msg.type < (int)CurrentMsgType
            if (msg.type < CurrentMsgType)
                return;
            if (_msgs != null)
            {
                lock (_msgs)
                {
                    _msgs.Enqueue(msg);
                }
            }
        }
Beispiel #2
0
        //写入日志文本到文件的方法
        private void FileWrite(Msg msg)
        {
            try
            {
                if (_writer == null)
                {
                    GetCurrentFilename();
                    FileOpen();
                }

                if (_writer != null)
                {
                    //判断文件到期标志,如果当前文件到期则关闭当前文件创建新的日志文件
                    if ((_logFileSplit != LogFileSplit.Sizely && DateTime.Now >= _CurrentFileTimeSign) ||
                        (_logFileSplit == LogFileSplit.Sizely && ((double)_fileSize / 1048576) > _maxFileSize))
                    {
                        GetCurrentFilename();
                        FileClose();
                        FileOpen();
                    }

                    _writer.Write("日志时间:");
                    _writer.WriteLine(msg.datetime.ToString("yyyy-MM-dd HH:mm:ss,fff"));
                    //_writer.Write('\t');
                    _writer.Write("日志级别:");
                    _writer.WriteLine(msg.type);
                    //_writer.Write('\t');
                    _writer.Write("内    容:");
                    _writer.WriteLine(msg.text);
                    _writer.WriteLine("\t");
                    _fileSize += System.Text.Encoding.UTF8.GetBytes(msg.ToString()).Length;
                    _fs.Position = _fs.Length;  
                    _writer.Flush();
                }
            }
            catch (Exception e)
            {
                Console.Out.Write(e);
            }
        }