Esempio n. 1
0
        internal JObject VerifyOuterMessageAndReturnInnerMessage(IPluginLogMessage logMessage, DateTimeOffset expectedNow, string expectedType)
        {
            var json = logMessage.ToString();

            var actualResult = JsonConvert.DeserializeObject <JObject>(json, _jsonSettings);

            Assert.Equal(3, actualResult.Count);

            VerifyNow(expectedNow, actualResult);
            VerifyType(expectedType, actualResult);

            return(VerifyAndReturnMessage(actualResult));
        }
Esempio n. 2
0
        public void Write(IPluginLogMessage message)
        {
            if (!IsEnabled)
            {
                return;
            }

            if (_isDisposed)
            {
                throw new ObjectDisposedException(nameof(PluginLogger));
            }

            if (message == null)
            {
                throw new ArgumentException(Strings.ArgumentCannotBeNullOrEmpty, nameof(message));
            }

            lock (_streamWriterLock)
            {
                _streamWriter.Value.WriteLine(message.ToString());
            }
        }
Esempio n. 3
0
        private StreamWriter CreateStreamWriter(IPluginLogMessage message)
        {
            if (IsEnabled)
            {
                FileInfo file;
                int      processId;

                using (var process = Process.GetCurrentProcess())
                {
                    file      = new FileInfo(process.MainModule.FileName);
                    processId = process.Id;
                }

                var fileName = $"NuGet_PluginLogFor_{Path.GetFileNameWithoutExtension(file.Name)}_{DateTime.UtcNow.Ticks:x}.log";
                var filePath = Path.Combine(_logDirectoryPath, fileName);
                var stream   = File.Open(filePath, FileMode.Create, FileAccess.Write, FileShare.Read);

                try
                {
                    var streamWriter = new StreamWriter(stream);

                    streamWriter.AutoFlush = true;

                    streamWriter.WriteLine(message.ToString());

                    return(streamWriter);
                }
                catch (Exception)
                {
                    stream.Dispose();

                    throw;
                }
            }

            return(StreamWriter.Null);
        }
Esempio n. 4
0
 public void Write(IPluginLogMessage message)
 {
     _pluginLogger.Write($"{_tagName}:  {message.ToString()}");
 }