示例#1
0
        /// <summary>
        /// 以同步方式把消息写入日志
        /// 如果需要写入到指定的持久化方式,可以直接调用相应的 Writter ,就不需要调用这个方法。
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="info"></param>
        public static void SyncWrite <T>(T info) where T : BaseInfo
        {
            // 触发日志的配置检查
            WriterFactory.Init();

            // 如果禁用日志写入就直接返回
            if (WriterFactory.Config.Enable == false)
            {
                return;
            }

            // 忽略特定的对象类型
            if (s_filter.Instance.IgnoreWrite(info))
            {
                return;
            }


            // 获取写日志的实例,注意:允许一个类型配置多个写入方式
            ILogWriter[] writers = WriterFactory.CreateWriters(typeof(T));

            // 如果类型没有配置日志序列化器,就忽略
            if (writers == null || writers.Length == 0)
            {
                return;
            }


            foreach (var writer in writers)
            {
                writer.Write(info);
            }
        }
示例#2
0
        public void Test_CreateWriters()
        {
            WriterFactory.Config.Enable = false;

            var result = WriterFactory.CreateWriters(typeof(int));

            Assert.AreEqual(null, result);


            WriterFactory.Config.Enable = true;

            var result2 = WriterFactory.CreateWriters(typeof(int));

            Assert.AreEqual(null, result2);
        }