/// <summary> /// Richiede la scrittura del messaggio specificato all'interno del file di log. /// </summary> /// <param name="message">Messaggio di log da aggiungere al file di log.</param> /// <exception cref="IOException"> /// Si è verificato un errore di I/O. /// </exception> public void Write(LogMessage message) { if (message != null) { m_LogBuffer.Add(message); if (m_LogBuffer.Count >= m_LogBufferMaxSize) { Flush(); } } }
/// <summary> /// Trasferisce i dati specificati a tutti gli ILogHangler registrati con questo Logger. /// </summary> /// <param name="time">l'istante da associare al messaggio di log</param> /// <param name="module">il nome del modulo che ha invocato questo metodo</param> /// <param name="text">il testo del messaggio di log</param> /// <remarks> /// I dati specificati non vengono scritti immediatamente sui supporti di memorizzazione persistente /// degli ILogHandler registrati con questo Logger: la scrittura potrebbe essere posticipata al fine /// di ridurre l'impatto prestazionale dovuto ad eventuali supporti più lenti. /// </remarks> public void Write(DateTime time, string module, string text) { LogMessage message = new LogMessage() { Time = time, Module = module, Text = text }; lock (m_SyncLock) { foreach (var handler in m_LogHandlers) { if (handler != null) { try { handler.Write(message); } catch (Exception e) { m_LogErrors.Add(e); } } } } }