/** * Wird benutzt um den Ausgaberecord zu formatieren. */ protected virtual string InternalFormat(LogRecord record) { return String.Format("{0:G},{4} [{1}] {2}: {3}", record.LogTime, record.Source, record.Level, record.Message, record.LogTime.Millisecond); }
/** * Record publizieren. */ protected override void InternalPublish(LogRecord record) { if (sink_ != null) { sink_.WriteLine(InternalFormat(record)); sink_.Flush(); } }
/** * Wird aufgerufen um einen LogRecord zu publizieren. * * Die InternalPublish Methode wird mit aktivem sync_lock_ * Monitor aufgerufen. (D.h. sofern die Implementation nur * mit Unterobjekten dieses Loggers arbeitet braucht keine * besondere Rücksicht auf die Thread-Sicherheit genommen * werden.) */ protected abstract void InternalPublish(LogRecord record);
/* Dummy-Implementation für InternalPublish */ protected override void InternalPublish(LogRecord record) { }
/** * Publish-Operation */ protected override void InternalPublish(LogRecord log_record) { int end_pointer = _recordListPointer; _recordListPointer = (_recordListPointer + 1) % _recordList.Length; _recordList[end_pointer] = log_record; try { if (_onLog != null) _onLog(_recordList, end_pointer); } catch (Exception e_bad) { #if DEBUG SysDebug.WriteLine("CircularListLogger: InternalPublish: Exception: " // TRANSLATEME + LogUtils.FormatException(e_bad)); #endif } }
/** * Wird benutzt um den Ausgaberecord zu formatieren. */ protected virtual string InternalFormat(LogRecord record) { return(String.Format("{0:G},{4} [{1}] {2}: {3}", record.LogTime, record.Source, record.Level, record.Message, record.LogTime.Millisecond)); }
/* Dummy-Implementation für InternalPublish */ protected override void InternalPublish(LogRecord record) { }
/** * Wird aufgerufen um einen LogRecord zu publizieren. * * Die InternalPublish Methode wird mit aktivem sync_lock_ * Monitor aufgerufen. (D.h. sofern die Implementation nur * mit Unterobjekten dieses Loggers arbeitet braucht keine * besondere Rücksicht auf die Thread-Sicherheit genommen * werden.) */ protected abstract void InternalPublish(LogRecord record);
/** * Protokolliert den angegebenen Log-Record. (Diese Methode * wird u.a. benutzt um die Weiterleitung von Log-Meldungen * an übergeordnete Logger zu implementieren.) */ public void Log(LogRecord record) { lock(sync_lock_) { if (record.Level > loglevel_) return; InternalPublish(record); if (notify_parent_ && parent_ != null) parent_.Log(record); } }