Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
        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);
        }