Implement OutputAccessLogToSdCard and expose an FS access log option (#700)

* Add OutputAccessLogToSdCard

* Add config options for the FS access log
This commit is contained in:
Alex Barney
2019-06-15 20:31:18 -05:00
committed by Ac_K
parent 5c1bc52409
commit 350a3667f7
9 changed files with 136 additions and 20 deletions

View File

@ -19,6 +19,12 @@
// Enable print error logs
"logging_enable_error": true,
// Enable printing guest logs
"logging_enable_guest": true,
// Enable printing FS access logs. fs_global_access_log_mode must be 2 or 3
"logging_enable_fs_access_log": false,
// Filtered log classes, in a JSON array, eg. `[ "Loader", "ServiceFs" ]`
"logging_filtered_classes": [ ],
@ -44,6 +50,9 @@
// Enable integrity checks on Switch content files
"enable_fs_integrity_checks": true,
// Sets the "GlobalAccessLogMode". Possible modes are 0-3
"fs_global_access_log_mode": 0,
// Enable or disable aggressive CPU optimizations
"enable_aggressive_cpu_opts": true,

View File

@ -52,6 +52,16 @@ namespace Ryujinx
/// </summary>
public bool LoggingEnableError { get; private set; }
/// <summary>
/// Enables printing guest log messages
/// </summary>
public bool LoggingEnableGuest { get; private set; }
/// <summary>
/// Enables printing FS access log messages
/// </summary>
public bool LoggingEnableFsAccessLog { get; private set; }
/// <summary>
/// Controls which log messages are written to the log targets
/// </summary>
@ -92,6 +102,11 @@ namespace Ryujinx
/// </summary>
public bool EnableFsIntegrityChecks { get; private set; }
/// <summary>
/// Enables FS access log output to the console. Possible modes are 0-3
/// </summary>
public int FsGlobalAccessLogMode { get; private set; }
/// <summary>
/// Enable or Disable aggressive CPU optimizations
/// </summary>
@ -184,11 +199,13 @@ namespace Ryujinx
));
}
Logger.SetEnable(LogLevel.Debug, Instance.LoggingEnableDebug);
Logger.SetEnable(LogLevel.Stub, Instance.LoggingEnableStub);
Logger.SetEnable(LogLevel.Info, Instance.LoggingEnableInfo);
Logger.SetEnable(LogLevel.Warning, Instance.LoggingEnableWarn);
Logger.SetEnable(LogLevel.Error, Instance.LoggingEnableError);
Logger.SetEnable(LogLevel.Debug, Instance.LoggingEnableDebug);
Logger.SetEnable(LogLevel.Stub, Instance.LoggingEnableStub);
Logger.SetEnable(LogLevel.Info, Instance.LoggingEnableInfo);
Logger.SetEnable(LogLevel.Warning, Instance.LoggingEnableWarn);
Logger.SetEnable(LogLevel.Error, Instance.LoggingEnableError);
Logger.SetEnable(LogLevel.Guest, Instance.LoggingEnableGuest);
Logger.SetEnable(LogLevel.AccessLog, Instance.LoggingEnableFsAccessLog);
if (Instance.LoggingFilteredClasses.Length > 0)
{
@ -220,6 +237,8 @@ namespace Ryujinx
? IntegrityCheckLevel.ErrorOnInvalid
: IntegrityCheckLevel.None;
device.System.GlobalAccessLogMode = Instance.FsGlobalAccessLogMode;
if (Instance.EnableAggressiveCpuOpts)
{
Optimizations.AssumeStrictAbiCompliance = true;

View File

@ -10,6 +10,8 @@
"logging_enable_info",
"logging_enable_warn",
"logging_enable_error",
"logging_enable_guest",
"logging_enable_fs_access_log",
"logging_filtered_classes",
"enable_file_log",
"system_language",
@ -17,6 +19,7 @@
"enable_vsync",
"enable_multicore_scheduling",
"enable_fs_integrity_checks",
"fs_global_access_log_mode",
"enable_aggressive_cpu_opts",
"controller_type",
"enable_keyboard",
@ -265,6 +268,28 @@
false
]
},
"logging_enable_guest": {
"$id": "#/properties/logging_enable_guest",
"type": "boolean",
"title": "Logging Enable Guest",
"description": "Enables printing guest log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_fs_access": {
"$id": "#/properties/logging_enable_fs_access_log",
"type": "boolean",
"title": "Logging Enable FS Access Log",
"description": "Enables printing FS access log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_filtered_classes": {
"$id": "#/properties/logging_filtered_classes",
"type": "array",
@ -412,6 +437,20 @@
false
]
},
"fs_global_access_log_mode": {
"$id": "#/properties/fs_global_access_log_mode",
"type": "integer",
"title": "Enable FS access log",
"description": "Enables FS access log output. Possible modes are 0-3. Modes 2 and 3 output to the console.",
"default": 0,
"minimum": 0,
"examples": [
0,
1,
2,
3
]
},
"enable_aggressive_cpu_opts": {
"$id": "#/properties/enable_aggressive_cpu_opts",
"type": "boolean",