예제 #1
0
        public override string Format(RxLoggerConfiguration configuration, RxLogEntryMeta meta, TLog instance, FormatFlags format)
        {
            Guard.NotNull(configuration);
            Guard.NotNull(instance);

            // right then, this is what we do
            // we format out the meta data that we want, and then just use a simple method to get the
            // rest of the formatted text

            var sb = new StringBuilder();

            if (format == FormatFlags.IncludeMeta)
            {
                var formattedMeta = configuration.Formatting.FormatMeta(meta);

                if (_multiLine)
                {
                    sb.AppendLine(formattedMeta);
                }
                else
                {
                    sb.Append(formattedMeta + " ");
                }
            }

            BuildText(sb, configuration, instance);

            return(sb.ToString());
        }
예제 #2
0
        public RxLogEntryMetaTests()
        {
            _lineNo     = 121;
            _memberName = "member";

            _meta = new RxLogEntryMeta(this.GetType(), _memberName, _lineNo);
        }
        public LoggingTimerContext(ITimerContext context, RxLogEntryMeta meta)
        {
            Guard.NotNull(context);

            _context = context;
            _meta    = meta;
        }
예제 #4
0
        public void CreateGenericSuccessfullyTest()
        {
            var meta = new RxLogEntryMeta(this.GetType(), "member6", 1);

            const string specifics = "Test";
            var          entry     = new RxLogEntry <string>(meta, specifics);

            Assert.Same(meta, entry.Meta);
            Assert.Same(specifics, entry.Specifics);
            Assert.True(entry.InstanceOfType <string>());
            Assert.Equal(specifics, entry.Instance);
        }
예제 #5
0
        public void CreateSuccessfullyTest()
        {
            var meta = new RxLogEntryMeta(this.GetType(), "member4", 1);

            var specifics = new object();

            var entry = new RxLogEntry(meta, specifics);

            Assert.Same(meta, entry.Meta);
            Assert.Same(specifics, entry.Specifics);
            Assert.True(entry.InstanceOfType <object>());
        }
        public static ITimerContext LogOnDispose(this ITimerContext context, object host, [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int lineNo = 0)
        {
            var meta = new RxLogEntryMeta(host.GetType(), callerMemberName, lineNo);

            return(new LoggingTimerContext(context, meta));
        }
        /// <summary>
        /// Provides a default formatted single line string for the meta data.
        /// </summary>
        /// <param name="meta"></param>
        /// <returns></returns>
        public virtual string FormatMeta(RxLogEntryMeta meta)
        {
            var formatter = new DefaultRxLogMetaFormatter();

            return(formatter.Formatted(meta));
        }
예제 #8
0
 public abstract string Format(RxLoggerConfiguration configuration, RxLogEntryMeta meta, TLog instance, FormatFlags format);
        public string Formatted(RxLogEntryMeta entryMeta)
        {
            Guard.NotNull(entryMeta);

            return(string.Format("{2:hh:mm:ss.fff} {0}.{1}:{3}", entryMeta.CallingClass != null ? entryMeta.CallingClass.Name : string.Empty, entryMeta.MemberName, entryMeta.TimeStampUtc, entryMeta.LineNo));
        }