123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System;
- using BestHTTP.Extensions;
- using BestHTTP.PlatformSupport.Memory;
- namespace BestHTTP.Logger
- {
- public sealed class FileOutput : ILogOutput
- {
- private System.IO.Stream fileStream;
- public FileOutput(string fileName)
- {
- this.fileStream = HTTPManager.IOService.CreateFileStream(fileName, PlatformSupport.FileSystem.FileStreamModes.Create);
- }
- public void Write(Loglevels level, string logEntry)
- {
- if (this.fileStream != null && !string.IsNullOrEmpty(logEntry))
- {
- int count = System.Text.Encoding.UTF8.GetByteCount(logEntry);
- var buffer = BufferPool.Get(count, true);
- try
- {
- System.Text.Encoding.UTF8.GetBytes(logEntry, 0, logEntry.Length, buffer, 0);
- this.fileStream.Write(buffer, 0, count);
- this.fileStream.WriteLine();
- }
- finally
- {
- BufferPool.Release(buffer);
- }
- this.fileStream.Flush();
- }
- }
- public void Dispose()
- {
- if (this.fileStream != null)
- {
- this.fileStream.Close();
- this.fileStream = null;
- }
- GC.SuppressFinalize(this);
- }
- }
- }
|