/// <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); } } }
//写入日志文本到文件的方法 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); } }