示例#1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="NanoLogger" /> class.
        /// </summary>
        /// <param name="configuration">configuration of correlation type ids</param>
        public NanoLogger(NanoLoggerConfiguration configuration)
        {
            Arguments.NotNull(configuration, nameof(configuration));

            this.configuration = configuration;

            var max = configuration.MaxCorrelationType + 1;

            this.data = new NanoLogRow[max][];
            this.correlationTypeIndex = new int[max];

            for (byte i = 0; i < this.data.Length; ++i)
            {
                if (!configuration.CorrelationTypeLogCounts.ContainsKey(i))
                {
                    continue;
                }

                var correlationInstanceCount = configuration.CorrelationTypeLogCounts[i];
                this.data[i] = new NanoLogRow[correlationInstanceCount];
                this.correlationTypeIndex[i] = -1;

                for (var j = 0; j < correlationInstanceCount; ++j)
                {
                    this.data[i][j] = new NanoLogRow {
                        CorrelationTypeId = i
                    };
                }
            }
        }
示例#2
0
        public void Create_DifferentIndexes()
        {
            var cfg = new NanoLoggerConfiguration();

            cfg.Add(0, 10);
            cfg.Add(1, 5);

            var ml = new NanoLogger(cfg);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);

            ml.Begin(1, 0, 0);
            ml.Begin(1, 0, 0, 1);
            ml.End(1, 0, 0);
            ml.Begin(1, 0, 0);
            ml.Begin(1, 0, 0);
        }
示例#3
0
        public void Error_TooManyRecords_DifferentIndex()
        {
            var cfg = new NanoLoggerConfiguration();

            cfg.Add(0, 10);
            cfg.Add(1, 5);

            var ml = new NanoLogger(cfg);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);

            ml.Begin(1, 0, 0);
            ml.Begin(1, 0, 0, 1);
            ml.End(1, 0, 0);
            ml.Begin(1, 0, 0);
            ml.Begin(1, 0, 0);
            ml.Begin(1, 0, 0, 1);
        }
示例#4
0
        public void Error_CorrelationId_DoesNotExist()
        {
            var cfg = new NanoLoggerConfiguration();

            cfg.Add(0, 10);

            var ml = new NanoLogger(cfg);

            ml.Begin(1, 0, 0);
        }
示例#5
0
        public void Create()
        {
            var cfg = new NanoLoggerConfiguration();

            cfg.Add(0, 10);

            var ml = new NanoLogger(cfg);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
            ml.End(0, 0, 0);
            ml.Begin(0, 0, 0);

            ml.Begin(0, 0, 0);
            ml.Begin(0, 0, 0, 1);
        }