using Ryujinx.Common; using Ryujinx.Common.Logging; using System; using System.IO; using System.Linq; namespace LibRyujinx { public class AndroidLogTarget : ILogTarget { private readonly string _name; private readonly DefaultLogFormatter _formatter; string ILogTarget.Name { get => _name; } public AndroidLogTarget( string name) { _name = name; _formatter = new DefaultLogFormatter(); } public void Log(object sender, LogEventArgs args) { Logcat.AndroidLogPrint(GetLogLevel(args.Level), _name, _formatter.Format(args)); } private Logcat.LogLevel GetLogLevel(LogLevel logLevel) { return logLevel switch { LogLevel.Debug => Logcat.LogLevel.Debug, LogLevel.Stub => Logcat.LogLevel.Info, LogLevel.Info => Logcat.LogLevel.Info, LogLevel.Warning => Logcat.LogLevel.Warn, LogLevel.Error => Logcat.LogLevel.Error, LogLevel.Guest => Logcat.LogLevel.Info, LogLevel.AccessLog => Logcat.LogLevel.Info, LogLevel.Notice => Logcat.LogLevel.Info, LogLevel.Trace => Logcat.LogLevel.Verbose, _ => throw new NotImplementedException() }; } public void Dispose() { } } }