JsonLogTarget.cs 711 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System.IO;
  2. using Utf8Json;
  3. namespace Ryujinx.Common.Logging
  4. {
  5. public class JsonLogTarget : ILogTarget
  6. {
  7. private Stream _stream;
  8. private bool _leaveOpen;
  9. public JsonLogTarget(Stream stream)
  10. {
  11. _stream = stream;
  12. }
  13. public JsonLogTarget(Stream stream, bool leaveOpen)
  14. {
  15. _stream = stream;
  16. _leaveOpen = leaveOpen;
  17. }
  18. public void Log(object sender, LogEventArgs e)
  19. {
  20. JsonSerializer.Serialize(_stream, e);
  21. }
  22. public void Dispose()
  23. {
  24. if (!_leaveOpen)
  25. {
  26. _stream.Dispose();
  27. }
  28. }
  29. }
  30. }