docs: protected void logJobException(LaJobRuntime runtime, String bigMsg, Throwable cause) { // bigMsg contains stack-trace
          if (isBusinessStoppedException(cause)) {
              JobNoticeLog.log(runtime.getNoticeLogLevel(), () -> bigMsg);
              if (noticeLogHook != null) {
                  noticeLogHook.hookStopped(runtime, bigMsg, OptionalThing.of(cause));
              }
          } else {
              if (errorLogHook != null) {
                  final OptionalThing<LaScheduledJob> job = jobManager.findJobByKey(runtime.getJobKey());
                  errorLogHook.hookError(new JobErrorResource(job, OptionalThing.of(runtime), bigMsg, cause));
              }
              JobErrorLog.log(bigMsg); // not use second argument here, same reason as logging filter
          }
      }