本文整理汇总了C#中log4net.Tests.Appender.StringAppender类的典型用法代码示例。如果您正苦于以下问题:C# StringAppender类的具体用法?C# StringAppender怎么用?C# StringAppender使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
StringAppender类属于log4net.Tests.Appender命名空间,在下文中一共展示了StringAppender类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestGlobalPropertiesPattern
[Test] public void TestGlobalPropertiesPattern()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%property{prop1}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestGlobalProperiesPattern");
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test no global properties value set");
stringAppender.Reset();
GlobalContext.Properties["prop1"] = "val1";
log1.Info("TestMessage");
Assert.AreEqual("val1", stringAppender.GetString(), "Test global properties value set");
stringAppender.Reset();
GlobalContext.Properties.Remove("prop1");
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test global properties value removed");
stringAppender.Reset();
}
示例2: TestShutdownAndReconfigure
/// <summary>
/// Test that a repository can be shutdown and reconfigured
/// </summary>
[Test] public void TestShutdownAndReconfigure()
{
// Create unique repository
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
// Create appender and configure repos
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%m");
BasicConfigurator.Configure(rep, stringAppender);
// Get logger from repos
ILog log1 = LogManager.GetLogger(rep.Name, "logger1");
log1.Info("TestMessage1");
Assert.AreEqual("TestMessage1", stringAppender.GetString(), "Test logging configured");
stringAppender.Reset();
rep.Shutdown();
log1.Info("TestMessage2");
Assert.AreEqual("", stringAppender.GetString(), "Test not logging while shutdown");
stringAppender.Reset();
// Create new appender and configure
stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%m");
BasicConfigurator.Configure(rep, stringAppender);
log1.Info("TestMessage3");
Assert.AreEqual("TestMessage3", stringAppender.GetString(), "Test logging re-configured");
stringAppender.Reset();
}
示例3: TestThreadPropertiesPattern
public void TestThreadPropertiesPattern()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestThreadProperiesPattern");
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test no thread properties value set");
stringAppender.Reset();
ThreadContext.Properties[Utils.PROPERTY_KEY] = "val1";
log1.Info("TestMessage");
Assert.AreEqual("val1", stringAppender.GetString(), "Test thread properties value set");
stringAppender.Reset();
ThreadContext.Properties.Remove(Utils.PROPERTY_KEY);
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test thread properties value removed");
stringAppender.Reset();
}
示例4: TestThreadStackPattern
[Test] public void TestThreadStackPattern()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%property{prop1}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestThreadStackPattern");
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test no thread stack value set");
stringAppender.Reset();
using(ThreadContext.Stacks["prop1"].Push("val1"))
{
log1.Info("TestMessage");
Assert.AreEqual("val1", stringAppender.GetString(), "Test thread stack value set");
stringAppender.Reset();
}
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test thread stack value removed");
stringAppender.Reset();
}
示例5: TestFormatString
[Test] public void TestFormatString()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%message");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestFormatString");
// ***
log1.Info("TestMessage");
Assert.AreEqual("TestMessage", stringAppender.GetString(), "Test simple INFO event");
stringAppender.Reset();
// ***
log1.DebugFormat("Before {0} After", "Middle");
Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted DEBUG event");
stringAppender.Reset();
// ***
log1.InfoFormat("Before {0} After", "Middle");
Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted INFO event");
stringAppender.Reset();
// ***
log1.WarnFormat("Before {0} After", "Middle");
Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted WARN event");
stringAppender.Reset();
// ***
log1.ErrorFormat("Before {0} After", "Middle");
Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted ERROR event");
stringAppender.Reset();
// ***
log1.FatalFormat("Before {0} After", "Middle");
Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted FATAL event");
stringAppender.Reset();
// ***
log1.InfoFormat("Before {0} After {1}", "Middle", "End");
Assert.AreEqual("Before Middle After End", stringAppender.GetString(), "Test simple formatted INFO event 2");
stringAppender.Reset();
// ***
log1.InfoFormat("IGNORE THIS WARNING - EXCEPTION EXPECTED Before {0} After {1} {2}", "Middle", "End");
Assert.AreEqual(STRING_FORMAT_ERROR, stringAppender.GetString(), "Test formatting error");
stringAppender.Reset();
}
示例6: TestStackTracePattern
public void TestStackTracePattern()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%stacktrace{2}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestStackTracePattern");
log1.Info("TestMessage");
Assert.AreEqual("RuntimeMethodHandle._InvokeMethodFast > PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set");
stringAppender.Reset();
}
示例7: SetupRepository
public void SetupRepository()
{
hierarchy = new Repository.Hierarchy.Hierarchy();
stringAppender = new StringAppender();
stringAppender.Layout = new SimpleLayout();
stringAppender.ActivateOptions();
asyncAppender = new AsyncAppender();
asyncAppender.AddAppender(stringAppender);
asyncAppender.ActivateOptions();
BasicConfigurator.Configure(hierarchy, asyncAppender);
}
示例8: TestLogicalThreadPropertiesPatternAsyncAwait
public async Task TestLogicalThreadPropertiesPatternAsyncAwait()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestLogicalThreadPropertiesPattern");
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test no logical thread stack value set");
stringAppender.Reset();
string testValueForCurrentContext = "Outer";
LogicalThreadContext.Properties[Utils.PROPERTY_KEY] = testValueForCurrentContext;
log1.Info("TestMessage");
Assert.AreEqual(testValueForCurrentContext, stringAppender.GetString(), "Test logical thread properties value set");
stringAppender.Reset();
var strings = await Task.WhenAll(Enumerable.Range(0, 10).Select(x => SomeWorkProperties(x.ToString())));
// strings should be ["00AA0BB0", "01AA1BB1", "02AA2BB2", ...]
for (int i = 0; i < strings.Length; i++)
{
Assert.AreEqual(string.Format("{0}{1}AA{1}BB{1}", testValueForCurrentContext, i), strings[i], "Test logical thread properties expected sequence");
}
log1.Info("TestMessage");
Assert.AreEqual(testValueForCurrentContext, stringAppender.GetString(), "Test logical thread properties value set");
stringAppender.Reset();
LogicalThreadContext.Properties.Remove(Utils.PROPERTY_KEY);
log1.Info("TestMessage");
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString(), "Test logical thread properties value removed");
stringAppender.Reset();
}
示例9: TestLogFormatApi_NoError
[Test] public void TestLogFormatApi_NoError()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Threshold = Level.Fatal;
stringAppender.Layout = new PatternLayout("%level:%message");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestLogFormatApi_Error");
// ***
log1.Error("TestMessage");
Assert.AreEqual("", stringAppender.GetString(), "Test simple ERROR event 1");
stringAppender.Reset();
// ***
log1.Error("TestMessage", null);
Assert.AreEqual("", stringAppender.GetString(), "Test simple ERROR event 2");
stringAppender.Reset();
// ***
log1.Error("TestMessage", new Exception("Exception message"));
Assert.AreEqual("", stringAppender.GetString(), "Test simple ERROR event 3");
stringAppender.Reset();
// ***
log1.ErrorFormat("a{0}", "1");
Assert.AreEqual("", stringAppender.GetString(), "Test formatted ERROR event with 1 parm");
stringAppender.Reset();
// ***
log1.ErrorFormat("a{0}b{1}", "1", "2");
Assert.AreEqual("", stringAppender.GetString(), "Test formatted ERROR event with 2 parm");
stringAppender.Reset();
// ***
log1.ErrorFormat("a{0}b{1}c{2}", "1", "2", "3");
Assert.AreEqual("", stringAppender.GetString(), "Test formatted ERROR event with 3 parm");
stringAppender.Reset();
// ***
log1.ErrorFormat("a{0}b{1}c{2}d{3}e{4}f", "Q", "W", "E", "R", "T", "Y");
Assert.AreEqual("", stringAppender.GetString(), "Test formatted ERROR event with 5 parms (only 4 used)");
stringAppender.Reset();
// ***
log1.ErrorFormat(null, "Before {0} After {1}", "Middle", "End");
Assert.AreEqual("", stringAppender.GetString(), "Test formatting with null provider");
stringAppender.Reset();
// ***
log1.ErrorFormat(new System.Globalization.CultureInfo("en"), "Before {0} After {1}", "Middle", "End");
Assert.AreEqual("", stringAppender.GetString(), "Test formatting with 'en' provider");
stringAppender.Reset();
}
示例10: TestStackTracePattern
public void TestStackTracePattern()
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = NewPatternLayout("%stacktrace{2}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestStackTracePattern");
log1.Info("TestMessage");
StringAssert.EndsWith("PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set");
stringAppender.Reset();
}
示例11: NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent
public void NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent() {
StringAppender stringAppender = new StringAppender();
PatternLayout layout = NewPatternLayout();
layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
layout.ConversionPattern = "%message-as-name{2}";
layout.ActivateOptions();
stringAppender.Layout = layout;
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
log1.Info("NoDots");
Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info("One.Dot");
Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info("Tw.o.Dots");
Assert.AreEqual("o.Dots", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info("TrailingDot.");
Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info(".LeadingDot");
Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
// empty string and other evil combinations as tests for of-by-one mistakes in index calculations
log1.Info(string.Empty);
Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info("x");
Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
log1.Info(".");
Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
stringAppender.Reset();
}
示例12: TestAddingCustomPattern
[Test] public void TestAddingCustomPattern()
{
StringAppender stringAppender = new StringAppender();
PatternLayout layout = new PatternLayout();
layout.AddConverter("TestAddingCustomPattern", typeof(TestMessagePatternConverter));
layout.ConversionPattern = "%TestAddingCustomPattern";
layout.ActivateOptions();
stringAppender.Layout = layout;
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestAddingCustomPattern");
log1.Info("TestMessage");
Assert.AreEqual("TestMessage", stringAppender.GetString(), "%TestAddingCustomPattern not registered");
stringAppender.Reset();
}
示例13: TestExceptionPattern
public void TestExceptionPattern()
{
StringAppender stringAppender = new StringAppender();
PatternLayout layout = NewPatternLayout("%exception{stacktrace}");
stringAppender.Layout = layout;
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestExceptionPattern");
Exception exception = new Exception("Oh no!");
log1.Info("TestMessage", exception);
Assert.AreEqual(SystemInfo.NullText, stringAppender.GetString());
stringAppender.Reset();
}
示例14: BracketsInStackTracesAreEscapedProperly
public void BracketsInStackTracesAreEscapedProperly() {
XmlLayout layout = new XmlLayout();
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = layout;
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger");
Action<int> bar = foo => {
try {
throw new NullReferenceException();
}
catch (Exception ex) {
log1.Error(string.Format("Error {0}", foo), ex);
}
};
bar(42);
var log = stringAppender.GetString();
var startOfExceptionText = log.IndexOf("<exception>", StringComparison.InvariantCulture) + 11;
var endOfExceptionText = log.IndexOf("</exception>", StringComparison.InvariantCulture);
var sub = log.Substring(startOfExceptionText, endOfExceptionText - startOfExceptionText);
if (sub.StartsWith("<![CDATA["))
{
StringAssert.EndsWith("]]>", sub);
}
else
{
StringAssert.DoesNotContain("<", sub);
StringAssert.DoesNotContain(">", sub);
}
}
示例15: SomeWorkStack
static async Task<string> SomeWorkStack(string stackName)
{
StringAppender stringAppender = new StringAppender();
stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}");
ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString());
BasicConfigurator.Configure(rep, stringAppender);
ILog log = LogManager.GetLogger(rep.Name, "TestLogicalThreadStackPattern");
using (LogicalThreadContext.Stacks[Utils.PROPERTY_KEY].Push(stackName))
{
log.Info("TestMessage");
Assert.AreEqual(string.Format("Outer {0}", stackName), stringAppender.GetString(), "Test logical thread stack value set");
stringAppender.Reset();
await MoreWorkStack(log, "A");
log.Info("TestMessage");
await MoreWorkStack(log, "B");
log.Info("TestMessage");
}
return stringAppender.GetString();
}