forked from MeloNX/MeloNX
50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using Ryujinx.Common.Logging;
|
|
using Ryujinx.Common.Logging.Formatters;
|
|
using Ryujinx.Common.Logging.Targets;
|
|
using System;
|
|
|
|
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 static 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()
|
|
{
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
}
|
|
}
|