本文整理汇总了C#中Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Formatters.EventTextFormatter类的典型用法代码示例。如果您正苦于以下问题:C# EventTextFormatter类的具体用法?C# EventTextFormatter怎么用?C# EventTextFormatter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EventTextFormatter类属于Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Formatters命名空间,在下文中一共展示了EventTextFormatter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WhenConfiguringProgrammatically
public void WhenConfiguringProgrammatically()
{
this.tableName = "testoutofprocazuretables";
var connectionString = System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"];
AzureTableHelper.DeleteTable(connectionString, this.tableName);
var logger = MockEventSourceOutProc.Logger;
EventTextFormatter formatter = new EventTextFormatter();
IEnumerable<WindowsAzureTableEventEntry> events = null;
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProc", null, EventLevel.LogAlways);
var subject = new EventEntrySubject();
subject.LogToWindowsAzureTable("AzureInstance", connectionString, tableName, TimeSpan.FromSeconds(1));
SinkSettings sinkSettings = new SinkSettings("azureSink", subject, new List<EventSourceSettings>() { { settings } });
List<SinkSettings> sinks = new List<SinkSettings>() { { sinkSettings } };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
TestScenario.WithConfiguration(
svcConfiguration,
() =>
{
for (int i = 0; i < 10; i++)
{
logger.Critical("Critical message");
}
events = AzureTableHelper.PollForEvents(connectionString, this.tableName, 10);
});
Assert.AreEqual<int>(10, events.Count());
Assert.AreEqual<int>(2, events.First().EventId);
}
示例2: WhenMultipleEventsAreRaised
public void WhenMultipleEventsAreRaised()
{
var fileName = "multipleMessages.log";
File.Delete(fileName);
var formatter = new EventTextFormatter("------======------");
var logger = MockEventSource.Logger;
TestScenario.With1Listener(
logger,
listener =>
{
listener.LogToFlatFile(fileName, formatter);
listener.EnableEvents(logger, EventLevel.LogAlways);
for (int n = 0; n < 300; n++)
{
logger.Informational("some message to flat file " + n.ToString());
}
});
Assert.IsTrue(File.Exists(fileName));
var entries = Regex.Split(ReadFileWithoutLock(fileName), formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c));
Assert.AreEqual<int>(300, entries.Count());
StringAssert.Contains(entries.First(), "some message to flat file 0");
StringAssert.Contains(entries.Last(), "some message to flat file 299");
}
示例3: SetUp
public void SetUp()
{
AppDomain.CurrentDomain.SetData("APPBASE", Environment.CurrentDirectory);
this.fileName = Path.ChangeExtension(Guid.NewGuid().ToString("N"), ".log");
this.eventTextFormatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
this.listener = new ObservableEventListener();
}
示例4: WhenFileIsDeletedBetweenSessions
public void WhenFileIsDeletedBetweenSessions()
{
var fileName = "newflatfile.log";
File.Delete(fileName);
var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
var logger = MockEventSource.Logger;
TestScenario.With1Listener(
logger,
listener =>
{
listener.LogToFlatFile(fileName, formatter);
listener.EnableEvents(logger, EventLevel.LogAlways);
logger.Informational("Message 1");
});
Assert.IsTrue(File.Exists(fileName));
var entries = Regex.Split(ReadFileWithoutLock(fileName), formatter.Header).Where(c => !string.IsNullOrWhiteSpace(c));
Assert.AreEqual<int>(1, entries.Count());
File.Delete(fileName);
TestScenario.With1Listener(
logger,
listener =>
{
listener.LogToFlatFile(fileName, formatter);
listener.EnableEvents(logger, EventLevel.LogAlways);
logger.Informational("Message 1");
});
Assert.IsTrue(File.Exists(fileName));
}
示例5: UnderReleaseBufferLeak
public void UnderReleaseBufferLeak()
{
ResourceLeakDetector.DetectionLevel preservedLevel = ResourceLeakDetector.Level;
try
{
ResourceLeakDetector.Level = ResourceLeakDetector.DetectionLevel.Paranoid;
var eventListener = new ObservableEventListener();
Mock<IObserver<EventEntry>> logListener = this.mockRepo.Create<IObserver<EventEntry>>();
var eventTextFormatter = new EventTextFormatter();
Func<EventEntry, bool> leakPredicate = y => y.TryFormatAsString(eventTextFormatter).Contains("LEAK");
logListener.Setup(x => x.OnNext(It.Is<EventEntry>(y => leakPredicate(y)))).Verifiable();
logListener.Setup(x => x.OnNext(It.Is<EventEntry>(y => !leakPredicate(y))));
eventListener.Subscribe(logListener.Object);
eventListener.EnableEvents(DefaultEventSource.Log, EventLevel.Verbose);
this.CreateAndForgetBuffer();
GC.Collect();
GC.WaitForPendingFinalizers();
this.mockRepo.Verify();
}
finally
{
ResourceLeakDetector.Level = preservedLevel;
}
}
示例6: WhenConcurrentEventsRaised
public void WhenConcurrentEventsRaised()
{
var logger = MockEventSourceOutProc.Logger;
EventTextFormatter formatter = new EventTextFormatter();
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProc", null, EventLevel.LogAlways);
InMemorySink sink = new InMemorySink(formatter);
SinkSettings sinkSettings = new SinkSettings("memorySink", sink, new List<EventSourceSettings>() { { settings } });
List<SinkSettings> sinks = new List<SinkSettings>() { { sinkSettings } };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
TestScenario.WithConfiguration(
svcConfiguration,
() =>
{
sink.WaitSignalCondition = () => sink.EventWrittenCount == 100;
for (int n = 0; n < 100; n++)
{
logger.LogSomeMessage("some message" + n.ToString());
}
sink.WaitOnAsyncEvents.WaitOne(TimeSpan.FromSeconds(10));
});
StringAssert.Contains(sink.ToString(), "some message99");
}
示例7: WhenEnumsInPayload
public void WhenEnumsInPayload()
{
var validConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["valid"].ConnectionString;
DatabaseHelper.CleanLoggingDB(validConnectionString);
var logger = MockEventSourceOutProcEnum.Logger;
EventTextFormatter formatter = new EventTextFormatter();
System.Data.DataTable eventsDataTable = null;
var subject = new EventEntrySubject();
subject.LogToSqlDatabase("testInstance", validConnectionString, "Traces", bufferingCount: 1);
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProcEnum", null, EventLevel.LogAlways);
SinkSettings sinkSettings = new SinkSettings("sqlDBsink", subject, new List<EventSourceSettings>() { { settings } });
List<SinkSettings> sinks = new List<SinkSettings>() { { sinkSettings } };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
TestScenario.WithConfiguration(
svcConfiguration,
() =>
{
logger.SendEnumsEvent16(MockEventSourceOutProcEnum.MyColor.Blue, MockEventSourceOutProcEnum.MyFlags.Flag3);
eventsDataTable = DatabaseHelper.PollUntilEventsAreWritten(validConnectionString, 1);
});
Assert.AreEqual(1, eventsDataTable.Rows.Count);
StringAssert.Contains(eventsDataTable.Rows[0]["payload"].ToString(), @"""a"": 1");
StringAssert.Contains(eventsDataTable.Rows[0]["payload"].ToString(), @"""b"": 4");
}
示例8: WhenUsingSinkProgrammatically
public void WhenUsingSinkProgrammatically()
{
var validConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["valid"].ConnectionString;
DatabaseHelper.CleanLoggingDB(validConnectionString);
var logger = MockEventSourceOutProc.Logger;
EventTextFormatter formatter = new EventTextFormatter();
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProc", null, EventLevel.LogAlways);
var subject = new EventEntrySubject();
subject.LogToSqlDatabase("testInstance", validConnectionString, "Traces", TimeSpan.FromSeconds(1), 1);
System.Data.DataTable eventsDataTable = null;
SinkSettings sinkSettings = new SinkSettings("sqlDBsink", subject, new List<EventSourceSettings>() { { settings } });
List<SinkSettings> sinks = new List<SinkSettings>() { { sinkSettings } };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
TestScenario.WithConfiguration(
svcConfiguration,
() =>
{
for (int n = 0; n < 10; n++)
{
logger.LogSomeMessage("some message" + n.ToString());
}
eventsDataTable = DatabaseHelper.PollUntilEventsAreWritten(validConnectionString, 10);
});
Assert.AreEqual(10, eventsDataTable.Rows.Count);
StringAssert.Contains(eventsDataTable.Rows[0]["payload"].ToString(), "some message");
}
示例9: WhenUsingRollingSinkProgrammatic
public void WhenUsingRollingSinkProgrammatic()
{
var logger = MockEventSourceOutProc.Logger;
EventTextFormatter formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
var fileName = "newRollingFlatfileSerial.log";
File.Delete(fileName);
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProc", null, EventLevel.LogAlways);
var subject = new EventEntrySubject();
subject.LogToRollingFlatFile(fileName, 100, "d", RollFileExistsBehavior.Overwrite, RollInterval.Day, formatter);
SinkSettings sinkSettings = new SinkSettings("rollingFlatFileSink", subject, new List<EventSourceSettings>() { { settings } });
List<SinkSettings> sinks = new List<SinkSettings>() { { sinkSettings } };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
IEnumerable<string> entries = null;
TestScenario.WithConfiguration(
svcConfiguration,
() =>
{
for (int n = 0; n < 200; n++)
{
logger.LogSomeMessage("some message" + n.ToString());
}
entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 200, EventTextFormatter.DashSeparator);
});
Assert.AreEqual(200, entries.Count());
StringAssert.Contains(entries.First(), "some message0");
StringAssert.Contains(entries.Last(), "some message199");
}
示例10: Given
protected override void Given()
{
ColorMapper = new MockDefaultConsoleColorMapper();
MockConsole = new MockConsoleOutput();
Formatter = new EventTextFormatter(EventTextFormatter.DashSeparator) { VerbosityThreshold = EventLevel.Informational };
Listener = new ObservableEventListener();
Listener.LogToConsole(Formatter, ColorMapper);
Listener.EnableEvents(TestEventSource.Log, EventLevel.LogAlways);
}
示例11: Main
static void Main(string[] args)
{
if (args.Length < 5)
{
Console.WriteLine("Mamemaki.Slab.BigQuery.PlayGround.exe <projectId> <datasetId> <tableId> <serviceAccountEmail> <privateKeyFile>");
return;
}
var projectId = args[0];
var datasetId = args[1];
var tableId = args[2];
var serviceAccountEmail = args[3];
var privateKeyFile = args[4];
var tableSchemaFile = args[5];
using (var listenerConsole = new ObservableEventListener())
using (var listener = new ObservableEventListener())
{
var formatterConsole = new EventTextFormatter(
"+=========================================+");
// Setup listener for debug
listenerConsole.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.LogAlways);
listenerConsole.EnableEvents(BigQuerySinkEventSource.Log, EventLevel.LogAlways);
listenerConsole.LogToConsole(formatterConsole);
// Setup listener for playgrond
listener.EnableEvents(PlayGroundEventSource.Log, EventLevel.LogAlways);
listener.LogToConsole(formatterConsole);
listener.LogToBigQuery(
projectId: projectId,
datasetId: datasetId,
tableId: tableId,
authMethod: "private_key",
serviceAccountEmail: serviceAccountEmail,
privateKeyFile: privateKeyFile,
privateKeyPassphrase: "notasecret",
autoCreateTable: true,
tableSchemaFile: tableSchemaFile,
insertIdFieldName: "%uuid%",
bufferingInterval: TimeSpan.FromSeconds(1),
bufferingCount: 3,
bufferingFlushAllTimeout: Constants.DefaultBufferingFlushAllTimeout,
maxBufferSize: 30000);
PlayGroundEventSource.Log.Trace("start");
InsertRows(3);
Thread.Sleep(1);
InsertRows(3);
PlayGroundEventSource.Log.Trace("end");
}
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}
示例12: WhenUsingTwoCollectorsForSameEventSourceWithDifferentSinkTypes
public void WhenUsingTwoCollectorsForSameEventSourceWithDifferentSinkTypes()
{
var validConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["valid"].ConnectionString;
DatabaseHelper.CleanLoggingDB(validConnectionString);
string fileName = "TwoCollectorsSameEventSourceDifferentSinkTypes.log";
File.Delete(fileName);
string header = "===========";
var logger = MockEventSourceOutProc.Logger;
EventTextFormatter formatter = new EventTextFormatter(header);
EventSourceSettings settings = new EventSourceSettings("MockEventSourceOutProc", null, EventLevel.LogAlways);
var subject = new EventEntrySubject();
subject.LogToSqlDatabase("testInstance", validConnectionString, "Traces", TimeSpan.FromSeconds(1), 1);
SinkSettings sinkSettings = new SinkSettings("dbSink", subject, new List<EventSourceSettings>() { { settings } });
var subject2 = new EventEntrySubject();
subject2.LogToFlatFile(fileName, formatter);
SinkSettings sinkSettings2 = new SinkSettings("ffSink", subject2, new List<EventSourceSettings>() { { settings } });
System.Data.DataTable eventsDataTable = null;
List<SinkSettings> sinks = new List<SinkSettings>() { sinkSettings, sinkSettings2 };
TraceEventServiceConfiguration svcConfiguration = new TraceEventServiceConfiguration(sinks);
IEnumerable<string> entries = null;
using (TraceEventService collector = new TraceEventService(svcConfiguration))
using (TraceEventService collector2 = new TraceEventService(svcConfiguration))
{
collector.Start();
collector2.Start();
try
{
for (int n = 0; n < 10; n++)
{
logger.LogSomeMessage("some message" + n.ToString());
}
eventsDataTable = DatabaseHelper.PollUntilEventsAreWritten(validConnectionString, 10);
entries = FlatFileHelper.PollUntilTextEventsAreWritten(fileName, 10, header);
}
finally
{
collector.Stop();
collector2.Stop();
}
}
Assert.AreEqual(10, eventsDataTable.Rows.Count);
StringAssert.Contains(eventsDataTable.Rows[0]["payload"].ToString(), "some message");
Assert.AreEqual(10, entries.Count());
StringAssert.Contains(entries.First(), "some message0");
StringAssert.Contains(entries.Last(), "some message9");
}
示例13: IncludesTaskName
public void IncludesTaskName()
{
var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator, verbosityThreshold: EventLevel.LogAlways);
using (var listener = new InMemoryEventListener(formatter))
{
listener.EnableEvents(Logger, EventLevel.LogAlways, Keywords.All);
Logger.DBQueryStart("select * from table");
Logger.DBQueryStop();
var entries = Regex.Split(listener.ToString(), formatter.Header + "\r\n").Where(c => !string.IsNullOrWhiteSpace(c)).ToList();
StringAssert.Matches(entries[0], new Regex("EventName : .*DBQuery"));
StringAssert.Matches(entries[1], new Regex("Task : .*" + MyCompanyEventSource.Tasks.DBQuery.ToString()));
}
}
示例14: WritesEventData
public void WritesEventData()
{
var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator) { VerbosityThreshold = EventLevel.Critical };
using (var listener = new InMemoryEventListener(formatter))
{
listener.EnableEvents(Logger, EventLevel.LogAlways, Keywords.All);
Logger.Failure("Failure message");
formatter.VerbosityThreshold = EventLevel.Informational;
Logger.DBQueryStart("select * from table");
Logger.DBQueryStop();
Logger.LogColor(MyColor.Red);
var entries = Regex.Split(listener.ToString(), formatter.Header + "\r\n").Where(c => !string.IsNullOrWhiteSpace(c)).ToList();
StringAssert.Contains(entries[0], "EventId : 1");
StringAssert.Contains(entries[0], "Level : Error");
StringAssert.Contains(entries[0], "Payload : [message : Failure message]");
StringAssert.Contains(entries[1],
@"EventId : 5
Keywords : 2
Level : Informational
Message :
Opcode : Start
Task : 2
Version : 0
Payload : [sqlQuery : select * from table]");
StringAssert.Contains(entries[2],
@"EventId : 6
Keywords : 2
Level : Informational
Message :
Opcode : Stop
Task : 2
Version : 0
Payload :");
StringAssert.Contains(entries[3],
@"EventId : 8
Keywords : None
Level : Informational
Message :
Opcode : Info
Task : 65526
Version : 0
Payload : [color : 0]");
}
}
示例15: ShouldWriteTimestampWithDefaultDateTimeFormat
public void ShouldWriteTimestampWithDefaultDateTimeFormat()
{
var formatter = new EventTextFormatter(EventTextFormatter.DashSeparator);
using (var listener = new InMemoryEventListener(formatter))
{
listener.EnableEvents(Logger, EventLevel.LogAlways, Keywords.All);
Logger.Failure("error");
var logged = listener.ToString();
var lookup = "Timestamp : ";
var lookupIndex = logged.IndexOf(lookup);
var dateLength = logged.IndexOf("\r\n", lookupIndex) - lookupIndex - lookup.Length;
var ts = logged.Substring(lookupIndex + lookup.Length, dateLength);
DateTime dt;
Assert.IsTrue(DateTime.TryParseExact(ts, formatter.DateTimeFormat ?? EventEntry.DefaultDateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt));
}
}