feat: add logging for crashed programs, don't crash the whole process.
This commit is contained in:
parent
b0593585df
commit
54a50ef04b
2 changed files with 22 additions and 10 deletions
|
@ -72,12 +72,18 @@ namespace Jellyfin.Plugin.SmartPlaylist.ScheduledTasks {
|
|||
executor.environment.Set("*user*", Lisp.Object.FromBase(user));
|
||||
foreach (var i in items) {
|
||||
executor.environment.Set("*item*", Lisp.Object.FromBase(i));
|
||||
try {
|
||||
var r = executor.eval(expression);
|
||||
_logger.LogTrace("Item {0} evaluated to {1}", i, r.ToString());
|
||||
if ((r is not Lisp.Boolean r_bool) || (r_bool.Value())) {
|
||||
_logger.LogDebug("Added '{0}' to Smart Collection {1}", i, name);
|
||||
results.Add(i);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
_logger.LogError("Program crashed:\n{0}", expression.ToString());
|
||||
_logger.LogError("Environment:\n{0}", executor.environment);
|
||||
_logger.LogError("Traceback:\n{0}", e.ToString());
|
||||
}
|
||||
}
|
||||
executor = SetupExecutor();
|
||||
executor.environment.Set("*user*", Lisp.Object.FromBase(user));
|
||||
|
|
|
@ -78,12 +78,18 @@ namespace Jellyfin.Plugin.SmartPlaylist.ScheduledTasks {
|
|||
executor.environment.Set("*user*", Lisp.Object.FromBase(user));
|
||||
foreach (var i in items) {
|
||||
executor.environment.Set("*item*", Lisp.Object.FromBase(i));
|
||||
try {
|
||||
var r = executor.eval(expression);
|
||||
_logger.LogTrace("Item {0} evaluated to {1}", i, r.ToString());
|
||||
if ((r is not Lisp.Boolean r_bool) || (r_bool.Value())) {
|
||||
_logger.LogDebug("Added '{0}' to Smart Playlist {1}", i, smartPlaylist.Name);
|
||||
results.Add(i);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
_logger.LogError("Program crashed:\n{0}", expression.ToString());
|
||||
_logger.LogError("Environment:\n{0}", executor.environment);
|
||||
_logger.LogError("Traceback:\n{0}", e.ToString());
|
||||
}
|
||||
}
|
||||
executor = SetupExecutor();
|
||||
executor.environment.Set("*user*", Lisp.Object.FromBase(user));
|
||||
|
|
Loading…
Add table
Reference in a new issue