예제 #1
0
        public void WriteLine()
        {
            var lineInfo = new LogLineInfo {
                Depth = contexts.Count
            };

            if (IncludeCallingMethod)
            {
                var trace = new StackTrace();
                for (int i = 0; i < trace.FrameCount; i++)
                {
                    var method = trace.GetFrame(i).GetMethod();
                    if (method.DeclaringType != typeof(Logger))
                    {
                        lineInfo.CallingClass  = method.DeclaringType.Name;
                        lineInfo.CallingMethod = (method.IsConstructor ? lineInfo.CallingClass : method.Name);
                        break;
                    }
                }
            }

            lineInfo.Message = "";

            foreach (var ep in endpoints)
            {
                ep.LogLine(lineInfo);
            }
        }
예제 #2
0
        public void WriteLine(string message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var lineInfo = new LogLineInfo {
                Depth = contexts.Count
            };

            if (IncludeCallingMethod)
            {
                var trace = new StackTrace();
                for (int i = 0; i < trace.FrameCount; i++)
                {
                    var method = trace.GetFrame(i).GetMethod();
                    if (method.DeclaringType != typeof(Logger))
                    {
                        lineInfo.CallingClass  = method.DeclaringType.Name;
                        lineInfo.CallingMethod = (method.IsConstructor ? lineInfo.CallingClass : method.Name);
                        break;
                    }
                }
            }

            var lines = message.Split(crlf, StringSplitOptions.RemoveEmptyEntries);

            foreach (var line in lines)
            {
                lineInfo.Message = line;

                foreach (var ep in endpoints)
                {
                    ep.LogLine(lineInfo);
                }
            }
        }