/// <summary> /// Writes user state and request to log /// </summary> /// <param name="logger"></param> /// <param name="stats"></param> /// <param name="address">IP adress of user</param> /// <param name="request">Request string</param> /// <param name="user">UserAgent</param> /// <param name="xid">header x-id as email or unique user id</param> public static bool LogWrite(this ILogger logger, UserStats stats, string address, string request, string user, string xid) { string usrx; address = address ?? ""; if (!string.IsNullOrEmpty(xid)) { var t = UserStats.Parse(xid); usrx = "\nLoginedAs: " + t.UserType + " [" + (int)t.UserType + "]" + " ID: " + t.UserId; stats.CheckUser(user, xid, t.UserId); } else { usrx = " No user ID found"; } if (address.Contains(':')) { address = address.Substring(0, address.IndexOf(':')); } var d = TimeChron.GetRealTime().ToString("hh:mm:ss - dd.MM.yyyy", CultureInfo.CreateSpecificCulture("en-US")); if (!request.Contains("ulog") && !request.Contains("trace") && !user.Contains("MaxRev")) { logger.Notify(LogArea.Http, LogType.Main, "\n" + d + "\nip: " + address + usrx + "\nfrom: " + user + "\nreq=" + request + "\n"); } return(true); }
/// <summary> /// Writes user state and request to log /// </summary> /// <param name="logger"></param> /// <param name="stats"></param> /// <param name="address">IP adress of user</param> /// <param name="request">Request string</param> /// <param name="useragent">UserAgent</param> /// <param name="xid">header x-id as email or unique user id</param> public static bool LogWrite(this ILogger logger, UserStats stats, string address, string request, string useragent, string xid) { string usrx; address ??= ""; if (!string.IsNullOrEmpty(xid)) { var t = UserStats.Parse(xid); usrx = $"\nLoginedAs: {t.UserType} [{(int)t.UserType}] ID: {t.UserId}"; stats.CheckUser(useragent, xid, t.UserId); } else { usrx = " No user ID found"; } if (address.Contains(':')) { address = address.Substring(0, address.IndexOf(':')); } var d = TimeChron.GetRealTime().ToString("hh:mm:ss - dd.MM.yyyy", CultureInfo.CreateSpecificCulture("en-US")); if (request != null) { if (!request.Contains("ulog") && !request.Contains("trace")) { if (useragent != null && !useragent.Contains("MaxRev") || useragent == null) { logger.Notify(LogArea.Http, LogType.Main, $"\n{d}\nip: {address}{usrx}\nfrom: {useragent ?? "Unknown client"}\nreq={request}\n"); } } } return(true); }