Beispiel #1
0
 public void Fatal(PubLogger.Level level, string message, params object[] list)
 {
     Log(level, PubLogger.Severity.Fatal, message, list);
 }
Beispiel #2
0
 public void Warning(PubLogger.Level level, string message, params object[] list)
 {
     Log(level, PubLogger.Severity.Warning, message, list);
 }
Beispiel #3
0
 public void Error(PubLogger.Level level, string message, params object[] list)
 {
     Log(level, PubLogger.Severity.Error, message, list);
 }
Beispiel #4
0
                protected void Log(PubLogger.Level level, PubLogger.Severity severity, string message, params object[] list)
                {
                    StringBuilder builder = new StringBuilder();

                    builder.Append(level.ToString());

                    if (severity != PubLogger.Severity.Informational)
                    {
                        builder.Append(" (");
                        builder.Append(severity.ToString());
                        builder.Append("): ");
                    }
                    else
                    {
                        builder.Append(": ");
                    }

                    StackTrace trace = new StackTrace(3);

                    if (null != trace)
                    {
                        int total = trace.FrameCount;

                        StackFrame frame = null;
                        UseLoggerSubsystemAttribute subsystem = null;

                        for (int current = 0; current < total; ++current)
                        {
                            frame = trace.GetFrame(current);

                            var methodBase = frame.GetMethod();
                            var classType  = methodBase.ReflectedType;

                            subsystem = (UseLoggerSubsystemAttribute)Attribute.GetCustomAttribute(classType, typeof(UseLoggerSubsystemAttribute));
                            if (null != subsystem)
                            {
                                break;
                            }
                            frame = null;
                        }

                        if (null == frame)
                        {
                            frame = trace.GetFrame(0);
                        }

                        if (null != frame)
                        {
                            var methodBase = frame.GetMethod();
                            var classType  = methodBase.ReflectedType;

                            string className  = classType.Name;
                            string @namespace = classType.Namespace;

                            if (null == subsystem)
                            {
                                subsystem = UseLoggerSubsystemAttribute.GetRegisteredNamespace(@namespace);
                            }

                            builder.Append("[");
                            if (subsystem != null)
                            {
                                builder.Append(subsystem.Name);
                                builder.Append("(");
                                builder.Append(subsystem.Id.ToString());
                                builder.Append(")");
                            }
                            else
                            {
                                builder.Append(@namespace);
                            }
                            builder.Append("] ");

                            if (className.StartsWith("<"))
                            {
                                builder.Append(classType.FullName);
                            }
                            else
                            {
                                builder.Append(className);
                            }

                            builder.Append(".");
                            builder.Append(methodBase.Name);
                            builder.Append(" ");
                        }
                    }

                    if (list.Length > 0)
                    {
                        builder.AppendFormat(message, list);
                    }
                    else
                    {
                        builder.Append(message);
                    }

                    ActualDebug.Write(builder.ToString());
                }