/// <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); } }
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); }