本文整理汇总了C#中Serilog.Events.LogEvent类的典型用法代码示例。如果您正苦于以下问题:C# LogEvent类的具体用法?C# LogEvent怎么用?C# LogEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LogEvent类属于Serilog.Events命名空间,在下文中一共展示了LogEvent类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Enrich
/// <summary>
/// Enrich the log event with the current ASP.NET user name, if User.Identity.IsAuthenticated is true.</summary>
/// <param name="logEvent">The log event to enrich.</param>
/// <param name="propertyFactory">Factory for creating new properties to add to the event.</param>
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent == null)
throw new ArgumentNullException("logEvent");
var userName = _noneUsername;
if (HttpContext.Current != null)
{
var context = new HttpContextWrapper(HttpContext.Current);
if (context.User != null)
{
if (context.User.Identity == null || context.User.Identity.IsAuthenticated == false)
{
if (_anonymousUsername != null)
userName = _anonymousUsername;
}
else
{
userName = context.User.Identity.Name;
}
}
}
if (userName == null)
return;
var userNameProperty = new LogEventProperty(UserNamePropertyName, new ScalarValue(userName));
logEvent.AddPropertyIfAbsent(userNameProperty);
}
开发者ID:teyc,项目名称:classic,代码行数:35,代码来源:UserNameEnricher.cs
示例2: IndexDecider_EndsUpInTheOutput
public void IndexDecider_EndsUpInTheOutput()
{
//DO NOTE that you cant send objects as scalar values through Logger.*("{Scalar}", {});
var timestamp = new DateTimeOffset(2013, 05, 28, 22, 10, 20, 666, TimeSpan.FromHours(10));
const string messageTemplate = "{Song}++ @{Complex}";
var template = new MessageTemplateParser().Parse(messageTemplate);
_options.IndexDecider = (l, utcTime) => string.Format("logstash-{1}-{0:yyyy.MM.dd}", utcTime, l.Level.ToString().ToLowerInvariant());
using (var sink = new ElasticsearchSink(_options))
{
var properties = new List<LogEventProperty> { new LogEventProperty("Song", new ScalarValue("New Macabre")) };
var e = new LogEvent(timestamp, LogEventLevel.Information, null, template, properties);
sink.Emit(e);
var exception = new ArgumentException("parameter");
properties = new List<LogEventProperty>
{
new LogEventProperty("Song", new ScalarValue("Old Macabre")),
new LogEventProperty("Complex", new ScalarValue(new { A = 1, B = 2}))
};
e = new LogEvent(timestamp.AddYears(-2), LogEventLevel.Fatal, exception, template, properties);
sink.Emit(e);
}
_seenHttpPosts.Should().NotBeEmpty().And.HaveCount(1);
var json = _seenHttpPosts.First();
var bulkJsonPieces = json.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
bulkJsonPieces.Should().HaveCount(4);
bulkJsonPieces[0].Should().Contain(@"""_index"":""logstash-information-2013.05.28");
bulkJsonPieces[1].Should().Contain("New Macabre");
bulkJsonPieces[2].Should().Contain(@"""_index"":""logstash-fatal-2011.05.28");
bulkJsonPieces[3].Should().Contain("Old Macabre");
//serilog by default simpy .ToString()'s unknown objects
bulkJsonPieces[3].Should().Contain("Complex\":\"{");
}
开发者ID:leachdaniel,项目名称:serilog-sinks-elasticsearch,代码行数:35,代码来源:IndexDeciderTests.cs
示例3: UsesCustomPropertyNames
public async Task UsesCustomPropertyNames()
{
try
{
await this.ThrowAsync();
}
catch (Exception e)
{
var timestamp = new DateTimeOffset(2013, 05, 28, 22, 10, 20, 666, TimeSpan.FromHours(10));
var messageTemplate = "{Song}++";
var template = new MessageTemplateParser().Parse(messageTemplate);
using (var sink = new ElasticsearchSink(_options))
{
var properties = new List<LogEventProperty>
{
new LogEventProperty("Song", new ScalarValue("New Macabre")),
new LogEventProperty("Complex", new ScalarValue(new { A = 1, B = 2 }))
};
var logEvent = new LogEvent(timestamp, LogEventLevel.Information, e, template, properties);
//one off
sink.Emit(logEvent);
sink.Emit(logEvent);
logEvent = new LogEvent(timestamp.AddDays(2), LogEventLevel.Information, e, template, properties);
sink.Emit(logEvent);
}
var bulkJsonPieces = this.AssertSeenHttpPosts(_seenHttpPosts, 4);
bulkJsonPieces[0].Should().Contain(@"""_index"":""logstash-2013.05.28");
bulkJsonPieces[1].Should().Contain("New Macabre");
bulkJsonPieces[1].Should().NotContain("Properties\"");
bulkJsonPieces[1].Should().Contain("fields\":{");
bulkJsonPieces[1].Should().Contain("@timestamp");
bulkJsonPieces[2].Should().Contain(@"""_index"":""logstash-2013.05.30");
}
}
开发者ID:konste,项目名称:serilog-sinks-elasticsearch,代码行数:35,代码来源:PropertyNameTests.cs
示例4: Emit
public void Emit(LogEvent logEvent)
{
var loggerName = "Default";
LogEventPropertyValue sourceContext;
if (logEvent.Properties.TryGetValue(Constants.SourceContextPropertyName, out sourceContext))
{
var sv = sourceContext as ScalarValue;
if (sv?.Value is string)
{
loggerName = (string) sv.Value;
}
}
var level = MapLogLevel(logEvent);
var message = logEvent.RenderMessage(_formatProvider);
var exception = logEvent.Exception;
var nlogEvent = new LogEventInfo(level, loggerName, message)
{
Exception = exception
};
foreach (var property in logEvent.Properties)
{
var sv = property.Value as ScalarValue;
var format = (sv?.Value is string) ? "l" : null;
nlogEvent.Properties[property.Key] = property.Value.ToString(format, null);
}
var logger = LogManager.GetLogger(loggerName);
logger.Log(nlogEvent);
}
开发者ID:phoenixx,项目名称:AzureToolkit,代码行数:34,代码来源:NLogSink.cs
示例5: Enrich
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent.Exception != null)
{
logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("ExceptionDetail", this.DestructureException(logEvent.Exception), true));
}
}
开发者ID:Rurouni,项目名称:MassiveOnlineUniversalServerEngine,代码行数:7,代码来源:ExceptionEnricher.cs
示例6: Emit
public void Emit(LogEvent logEvent)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
var sr = new StringWriter();
_textFormatter.Format(logEvent, sr);
System.Diagnostics.Trace.Write(sr.ToString());
}
开发者ID:sandcastle,项目名称:serilog,代码行数:7,代码来源:DiagnosticTraceSink.cs
示例7: HasPropertyValue
public static void HasPropertyValue(object propertyValue, string propertyName, LogEvent logEvent)
{
HasProperty(propertyName, logEvent);
LogEventPropertyValue value = logEvent.Properties[propertyName];
Assert.That(value.LiteralValue(), Is.EqualTo(propertyValue), "The property value was not as expected");
}
开发者ID:serilog-trace-listener,项目名称:serilog-tests-support,代码行数:7,代码来源:LogEventAssert.cs
示例8: Emit
public void Emit( LogEvent logEvent )
{
var stringWriter = new StringWriter();
textFormatter.Format( logEvent, stringWriter );
var message = stringWriter.ToString().Trim();
Trace.WriteLine( message );
}
开发者ID:DevelopersWin,项目名称:VoteReporter,代码行数:7,代码来源:TraceSink.cs
示例9: Emit
/// <summary>
/// Emit the provided log event to the sink.
/// </summary>
/// <param name="logEvent">The log event to write.</param>
public void Emit(LogEvent logEvent)
{
var renderedMessage = logEvent.RenderMessage(_formatProvider);
// take logEvent and use it for the corresponding ITelemetry counterpart
if (logEvent.Exception != null)
{
var exceptionTelemetry = new ExceptionTelemetry(logEvent.Exception)
{
SeverityLevel = logEvent.Level.ToSeverityLevel(),
HandledAt = ExceptionHandledAt.UserCode,
Timestamp = logEvent.Timestamp
};
// write logEvent's .Properties to the AI one
ForwardLogEventPropertiesToTelemetryProperties(exceptionTelemetry, logEvent, renderedMessage);
_telemetryClient.TrackException(exceptionTelemetry);
}
else
{
var eventTelemetry = new EventTelemetry(logEvent.MessageTemplate.Text)
{
Timestamp = logEvent.Timestamp
};
// write logEvent's .Properties to the AI one
ForwardLogEventPropertiesToTelemetryProperties(eventTelemetry, logEvent, renderedMessage);
_telemetryClient.TrackEvent(eventTelemetry);
}
}
开发者ID:alexvaluyskiy,项目名称:serilog-sinks-applicationinsights,代码行数:36,代码来源:ApplicationInsightsSink.cs
示例10: Emit
public void Emit(LogEvent logEvent)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
var renderSpace = new StringWriter();
_textFormatter.Format(logEvent, renderSpace);
Console.WriteLine (renderSpace.ToString ());
}
开发者ID:nberardi,项目名称:serilog,代码行数:7,代码来源:NSLogSink.cs
示例11: CreateLogglyEvent
private LogglyEvent CreateLogglyEvent(LogEvent logEvent)
{
var logglyEvent = new LogglyEvent();
var isHttpTransport = LogglyConfig.Instance.Transport.LogTransport == LogTransport.Https;
logglyEvent.Syslog.Level = ToSyslogLevel(logEvent);
foreach (var key in logEvent.Properties.Keys)
{
var propertyValue = logEvent.Properties[key];
var simpleValue = LogglyPropertyFormatter.Simplify(propertyValue);
logglyEvent.Data.AddIfAbsent(key, simpleValue);
}
logglyEvent.Data.AddIfAbsent("Message", logEvent.RenderMessage(_formatProvider));
if (isHttpTransport)
{
// syslog will capture these via the header
logglyEvent.Data.AddIfAbsent("Level", logEvent.Level.ToString());
}
if (logEvent.Exception != null)
{
logglyEvent.Data.AddIfAbsent("Exception", logEvent.Exception);
}
return logglyEvent;
}
开发者ID:joneal,项目名称:serilog-sinks-loggly,代码行数:28,代码来源:LogglySink.cs
示例12: Enrich
public void Enrich(LogEvent logEvent)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (HttpContext.Current == null)
return;
int requestId;
var requestIdItem = HttpContext.Current.Items[RequestIdItemName];
if (requestIdItem == null)
HttpContext.Current.Items[RequestIdItemName] = requestId = Interlocked.Increment(ref LastRequestId);
else
requestId = (int)requestIdItem;
string sessionId = null;
if (HttpContext.Current.Session != null)
sessionId = HttpContext.Current.Session.SessionID;
logEvent.AddPropertyIfAbsent(
LogEventProperty.For(HttpRequestPropertyName,
new
{
SessionId = sessionId,
Id = requestId,
},
destructureObjects: true));
}
开发者ID:sandcastle,项目名称:serilog,代码行数:27,代码来源:HttpRequestLogEventEnricher.cs
示例13: Format
/// <summary>
/// Format the log event into the output.
/// </summary>
/// <param name="logEvent">The event to format.</param>
/// <param name="output">The output.</param>
public void Format(LogEvent logEvent, TextWriter output)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (output == null) throw new ArgumentNullException("output");
var outputProperties = OutputProperties.GetOutputProperties(logEvent);
_outputTemplate.Render(outputProperties, output, _formatProvider);
}
开发者ID:rmoudy,项目名称:serilog,代码行数:12,代码来源:MessageTemplateDisplayFormatter.cs
示例14: Enrich
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (propertyFactory == null) throw new ArgumentNullException("propertyFactory");
var property = propertyFactory.CreateProperty(_name, _value, _destructureObjects);
logEvent.AddPropertyIfAbsent(property);
}
开发者ID:RossMerr,项目名称:serilog,代码行数:7,代码来源:LazyFixedPropertyEnricher.cs
示例15: FormatContent
public static void FormatContent(LogEvent logEvent, TextWriter output)
{
if (logEvent == null) throw new ArgumentNullException(nameof(logEvent));
if (output == null) throw new ArgumentNullException(nameof(output));
output.Write("{\"Timestamp\":\"");
output.Write(logEvent.Timestamp.ToString("o"));
output.Write("\",\"Level\":\"");
output.Write(logEvent.Level);
output.Write("\",\"MessageTemplate\":");
JsonValueFormatter.WriteQuotedJsonString(logEvent.MessageTemplate.Text, output);
if (logEvent.Exception != null)
{
output.Write(",\"Exception\":");
JsonValueFormatter.WriteQuotedJsonString(logEvent.Exception.ToString(), output);
}
if (logEvent.Properties.Count != 0)
WriteProperties(logEvent.Properties, output);
var tokensWithFormat = logEvent.MessageTemplate.Tokens
.OfType<PropertyToken>()
.Where(pt => pt.Format != null);
if (tokensWithFormat.Any())
WriteRenderings(tokensWithFormat.GroupBy(pt => pt.PropertyName), logEvent.Properties, output);
output.Write('}');
}
开发者ID:jamie94bc,项目名称:serilog-sinks-seq,代码行数:29,代码来源:RawJsonFormatter.cs
示例16: Emit
/// <summary>
/// Emit the provided log event to the sink.
/// </summary>
/// <param name="logEvent">The log event to write.</param>
public void Emit(LogEvent logEvent)
{
var category = "info";
switch (logEvent.Level)
{
case LogEventLevel.Verbose:
case LogEventLevel.Debug:
category = "verbose";
break;
case LogEventLevel.Information:
category = "info";
break;
case LogEventLevel.Warning:
category = "warning";
break;
case LogEventLevel.Error:
case LogEventLevel.Fatal:
category = "error";
break;
default:
SelfLog.WriteLine("Unexpected logging level, writing to loggly as Info");
break;
}
var properties = logEvent.Properties
.Select(pv => new { Name = pv.Key, Value = LogglyPropertyFormatter.Simplify(pv.Value) })
.ToDictionary((a) => a.Name, b => b.Value);
if (logEvent.Exception != null)
properties.Add("Exception", (object)logEvent.Exception);
_client.Log(logEvent.RenderMessage(_formatProvider), category, properties);
}
开发者ID:rmoudy,项目名称:serilog,代码行数:38,代码来源:LogglySink.cs
示例17: FormatToJson
static string FormatToJson(LogEvent @event)
{
var formatter = new JsonFormatter();
var output = new StringWriter();
formatter.Format(@event, output);
return output.ToString();
}
开发者ID:DmitryNaumov,项目名称:serilog,代码行数:7,代码来源:JsonFormatterTests.cs
示例18: Emit
public void Emit(LogEvent logEvent)
{
var correctedLogEvent = logEvent;
if (logEvent.Properties.ContainsKey(Common.Constants.KeyPassportTimestamp))
{
var passportTimestampProperty = logEvent.Properties[Common.Constants.KeyPassportTimestamp];
if (passportTimestampProperty != null)
{
var passportTimestampValue = passportTimestampProperty as ScalarValue;
if (passportTimestampValue != null)
{
if (passportTimestampValue.Value is DateTimeOffset)
{
var passportTimestamp = (DateTimeOffset)passportTimestampValue.Value;
correctedLogEvent = new LogEvent(passportTimestamp
, logEvent.Level
, logEvent.Exception
, logEvent.MessageTemplate
, logEvent.Properties.Select(x => new LogEventProperty(x.Key, x.Value)).ToList()
);
correctedLogEvent.RemovePropertyIfPresent(Common.Constants.KeyPassportTimestamp);
}
}
}
}
_destination.Write(correctedLogEvent);
}
开发者ID:OfficialCommunity,项目名称:Passports,代码行数:28,代码来源:PassportSink.cs
示例19: FormatInternal
private void FormatInternal(LogEvent logEvent, TextWriter output)
{
if (logEvent == null)
throw new ArgumentNullException("logEvent");
if (output == null)
throw new ArgumentNullException("output");
if (!_omitEnclosingObject)
output.Write("{");
var precedingDelimiter1 = "";
WriteJsonProperty("Timestamp", logEvent.Timestamp, ref precedingDelimiter1, output);
WriteJsonProperty("Level", logEvent.Level, ref precedingDelimiter1, output);
WriteJsonProperty("Message", logEvent.RenderMessage(), ref precedingDelimiter1, output);
WriteJsonProperty("MessageTemplate", logEvent.MessageTemplate.Text, ref precedingDelimiter1, output);
if (logEvent.Exception != null)
WriteJsonProperty("Exception", logEvent.Exception, ref precedingDelimiter1, output);
if (logEvent.Properties.Count != 0)
{
output.Write(",\"Properties\":{");
var precedingDelimiter2 = "";
foreach (KeyValuePair<string, LogEventPropertyValue> keyValuePair in logEvent.Properties)
WriteJsonProperty(keyValuePair.Key, keyValuePair.Value, ref precedingDelimiter2, output);
output.Write("}");
}
if (_omitEnclosingObject)
return;
output.Write("}");
}
开发者ID:droyad,项目名称:SbManager,代码行数:27,代码来源:CustomLogJsonFormatter.cs
示例20: Format
/// <summary>
/// Format the log event into the output.
/// </summary>
/// <param name="logEvent">The event to format.</param>
/// <param name="output">The output.</param>
public void Format(LogEvent logEvent, TextWriter output)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (output == null) throw new ArgumentNullException("output");
if (!_omitEnclosingObject)
output.Write("{");
var delim = "";
WriteJsonProperty("TimeStamp", logEvent.TimeStamp, ref delim, output);
WriteJsonProperty("Level", logEvent.Level, ref delim, output);
WriteJsonProperty("MessageTemplate", logEvent.MessageTemplate, ref delim, output);
if (logEvent.Exception != null)
WriteJsonProperty("Exception", logEvent.Exception, ref delim, output);
if (logEvent.Properties.Count != 0)
{
output.Write(",\"Properties\":{");
var pdelim = "";
foreach (var property in logEvent.Properties.Values)
{
WriteJsonProperty(property.Name, property.Value, ref pdelim, output);
}
output.Write("}");
}
if (!_omitEnclosingObject)
output.Write("}");
}
开发者ID:sandcastle,项目名称:serilog,代码行数:35,代码来源:SimpleJsonFormatter.cs
注:本文中的Serilog.Events.LogEvent类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论