private void PrepareLogger(ILoggy _, XElement l, IList <LoggyMessage> selflog) { _.Isolated = l.Attr("isolated").ToBool(); _.Level = l.Attr("level", "Info").To <LogLevel>(); foreach (var element in l.Elements("appender")) { var _ref = element.Attr("ref"); if (!string.IsNullOrWhiteSpace(_ref)) { if (Appenders.ContainsKey(_ref)) { _.Appenders.Add(Appenders[_ref]); } else { selflog.Add(new LoggyMessage(LogLevel.Error, "invalid appender ref")); } } else { var ap = ReadAppender(selflog, element); if (null != ap) { _.Appenders.Add(ap); } } } }
public static void Write(this ILoggy loggy, LogLevel level, params object[] args) { if (loggy.IsFor(level)) { var message = new LoggyMessage(level, args); loggy.Write(message); } }
public ILoggy Get(string name = null, Action <ILoggy> setup = null) { if (string.IsNullOrWhiteSpace(name)) { name = "default"; } var result = loggers.GetOrAdd(name, n => { var l = new DefaultLoggy { Name = n }; if (n == "_failsafe") { l.Isolated = true; l.Level = LogLevel.All; l.Appenders.Add(new ConsoleAppender { Format = "%{Level} - %{UserName} - %{Message}" }); l.Appenders.Add(new UdpAppender("127.0.0.2", 7071) { Format = "%{UserName} - %{Message}" }); return(l); } if (n != "default") { ILoggy parent = null; if (n.Contains(".")) { var parts = n.Split('.'); var path = string.Join(".", parts.Take(parts.Length - 1)); parent = Get(path); } else { parent = Get(); } l.SubLoggers.Add(parent); l.Level = parent.Level; } else { l.Isolated = true; } if (null != setup) { setup(l); } return(l); }); return(result); }
public void Run(IHostServer server, WebContext context, string callbackEndPoint, CancellationToken cancel) { this.loggy = this.loggy ?? LoggyManager.Get("handler.sendmail"); if (!Roles.IsInRole(context.User, SecurityConst.ROLE_ADMIN)) { context.Finish(new { error = "notauth" }.stringify(), status: 500); return; } var p = RequestParameters.Create(context); var count = p.num("count"); var messages = Queue.GetRequireSendMessages(count).ToArray(); var sent = 0; IList <object> errors = new List <object>(); foreach (var message in messages) { try { Sender.Send(message); Queue.MarkSent(message.Id); sent++; } catch (Exception e) { var inner = null == e.InnerException ? "" : e.InnerException.ToString(); var erinfo = new { message, error = e.ToString(), inner }; errors.Add(erinfo); if (loggy.IsForError()) { loggy.Error(erinfo.stringify()); } } } if (errors.Count == 0) { if (loggy.IsForTrace()) { loggy.Trace(new{ sent = messages.Length, ids = string.Join(", ", messages.Select(_ => _.Id)) }); } } context.Finish(new { src = messages.Length, sent, errors }.stringify(), status: errors.Count == 0?200:500); }
private void SetupLoggyRedirection(ILoggyManager manager) { if (_redirectedManager == manager) { return; } _redirectedManager = manager; _loggy = manager.Get(); _redirectappender = new TextWriterAppender(_redirection) { Format = LogFormat }; _loggy.Appenders.Add(_redirectappender); if (_redirectconsole) { _cachedAppender = _loggy.Appenders.OfType <ConsoleAppender>().FirstOrDefault(); if (null != _cachedAppender) { _cachedAppender.Active = false; } } }
public static bool IsForDebug(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Debug)); }
public static void Trace(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Trace, (object[])args); }
public TrustedOrigin() { this.logg = Loggy.Get("sys.sec.trusted"); }
public static bool IsForError(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Error)); }
public static bool IsForFatal(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Fatal)); }
public static bool IsForInfo(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Info)); }
public static bool IsForWarn(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Warn)); }
public static void Info(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Info, (object[])args); }
public static void Warn(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Warn, (object[])args); }
public static void Debug(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Debug, (object[])args); }
public static void Fatal(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Fatal, (object[])args); }
public static void Error(this ILoggy loggy, params object[] args) { Write(loggy, LogLevel.Error, (object[])args); }
protected virtual void SetupLoggy(ILoggy obj) { }
public static bool IsForTrace(this ILoggy loggy) { return(loggy.IsFor(LogLevel.Trace)); }