private void SerializeCommonProperties(ref MessagePackWriter writer, ILogMessage value, MessagePackSerializerOptions options) { writer.Write(TypeNamePropertyName); writer.Write(value.GetType().Name); writer.Write(CodePropertyName); options.Resolver.GetFormatter <NuGetLogCode>().Serialize(ref writer, value.Code, options); writer.Write(LevelPropertyName); options.Resolver.GetFormatter <LogLevel>().Serialize(ref writer, value.Level, options); writer.Write(MessagePropertyName); writer.Write(value.Message); writer.Write(ProjectPathPropertyName); writer.Write(value.ProjectPath); writer.Write(TimePropertyName); options.Resolver.GetFormatter <DateTimeOffset>().Serialize(ref writer, value.Time, options); writer.Write(WarningLevelPropertyName); options.Resolver.GetFormatter <WarningLevel>().Serialize(ref writer, value.WarningLevel, options); }
internal static Queue <LogMessage> GetLogs(ILogMessage currentMessage) { var cacheFile = new FileInfo(LogCacheFile); Queue <LogMessage> cache = cacheFile.Exists ? ReadCache() : new Queue <LogMessage>(); if (currentMessage != null) { if (!(currentMessage is LogMessage currentLogMessage)) { currentLogMessage = new LogMessage { Message = Encoding.Default.GetString(currentMessage.GetBytes()), MessageType = currentMessage.GetType().Name }; } cache.Enqueue(currentLogMessage); } SaveCache(cache); return(cache); }