internal bool IsEnabledAccessLog(AccessLogTarget target) { if ((AccessLogTarget & target) == 0) { return(false); } if (AccessLogInitialized) { return(GlobalAccessLogMode != GlobalAccessLogMode.None); } lock (_accessLogInitLocker) { if (!AccessLogInitialized) { if (HasFileSystemServer()) { IFileSystemProxy fsProxy = GetFileSystemProxyServiceObject(); Result rc = fsProxy.GetGlobalAccessLogMode(out GlobalAccessLogMode globalMode); GlobalAccessLogMode = globalMode; if (rc.IsFailure()) { throw new LibHacException("Abort"); } } else { GlobalAccessLogMode = GlobalAccessLogMode.Log; } if (GlobalAccessLogMode != GlobalAccessLogMode.None) { InitAccessLog(); } AccessLogInitialized = true; } } return(GlobalAccessLogMode != GlobalAccessLogMode.None); }
public Result RunOperationWithAccessLogOnFailure(AccessLogTarget logTarget, Func <Result> operation, Func <string> textGenerator, [CallerMemberName] string caller = "") { Result rc; if (IsEnabledAccessLog(logTarget)) { TimeSpan startTime = Time.GetCurrent(); rc = operation(); TimeSpan endTime = Time.GetCurrent(); OutputAccessLogUnlessResultSuccess(rc, startTime, endTime, textGenerator(), caller); } else { rc = operation(); } return(rc); }
public Result RunOperationWithAccessLog(AccessLogTarget logTarget, FileHandle handle, Func <Result> operation, Func <string> textGenerator, [CallerMemberName] string caller = "") { Result rc; if (IsEnabledAccessLog(logTarget) && handle.File.Parent.IsAccessLogEnabled) { TimeSpan startTime = Time.GetCurrent(); rc = operation(); TimeSpan endTime = Time.GetCurrent(); OutputAccessLog(rc, startTime, endTime, handle, textGenerator(), caller); } else { rc = operation(); } return(rc); }
public void SetAccessLogTarget(AccessLogTarget target) { AccessLogTarget = target; }