В библиотеке классов .NET 2.0 я пытаюсь написать свой собственный RollingFileAppender , который будет работать с буфером, который будет периодически промывать. Причиной этого является необходимость в том, чтобы мои существующие журналы RollingFileAppender записывали сжатые и зашифрованные журналы, которые будут работать лучше с буфером. /> Файл журнала не записан.appender.LockingModel = new FileAppender.MinimalLock();
перед вызовом appender.activateoptions ();
[*] Вызов LockingModel.AcquireLock () перед доступом к автору (а также LockingModel.ReleaseLock () после)
Считается, что внедрение обработки журнала в PatternLayoutConverter < /code>, но она становится грязной, когда у меня есть несколько приложений, использующих один и тот же статический конвертер.private readonly ConcurrentQueue _buffer = new ConcurrentQueue();
private readonly Timer _flushTimer;
public int BufferSizeThreshold { get; set; } = 250;
public TimeSpan BufferFlushInterval { get; set; } = TimeSpan.FromSeconds(5);
public EncryptingCompressingRollingAppender()
{
_flushTimer = new Timer(_ => Flush(), null, BufferFlushInterval, BufferFlushInterval);
}
protected override void Append(LoggingEvent loggingEvent)
{
var rendered = RenderLoggingEvent(loggingEvent);
_buffer.Enqueue(rendered);
if (_buffer.Count >= BufferSizeThreshold)
{
Flush();
}
}
private void Flush()
{
if (_buffer.IsEmpty)
return;
// Dequeue entire buffer into string
var log = DequeueBufferToString();
if (string.IsNullOrEmpty(log))
return;
// Compressing and encrypting buffer
var compressed = Compress(log);
var encrypted = Encrypt(compressed);
// Write to file
Writer.WriteLine(encrypted); // This will be base64 since it's not a binary file
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... nder-log-i
Log4net - «Файл в настоящее время не заблокирован». Исключение в пользовательском приложении, журнал не записан ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
С# проверьте, заблокирован ли текстовый файл ASCII/записан или записывается
Anonymous » » в форуме C# - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-