public void FlatFileListenerWillFallbackIfNotPriviledgesToWrite() { string fileName = @"trace.log"; string fullPath = String.Format(@"{0}\{1}", Directory.GetCurrentDirectory(), fileName); File.Delete(fileName); FileIOPermission fileIOPerm1 = new FileIOPermission(PermissionState.None); fileIOPerm1.SetPathList(FileIOPermissionAccess.Read, fullPath); fileIOPerm1.PermitOnly(); try { FlatFileTraceListener listener = new FlatFileTraceListener(fileName, "---header---", "***footer***", new TextFormatter("DUMMY{newline}DUMMY")); // need to go through the source to get a TraceEventCache LogSource source = new LogSource("notfromconfig", new[] { listener }, SourceLevels.All); source.TraceData(TraceEventType.Error, 0, new LogEntry("message", "cat1", 0, 0, TraceEventType.Error, "title", null)); listener.Dispose(); } catch (SecurityException) { FileIOPermission.RevertAll(); throw; } }
public void ListenerWithHeaderAndFooterWillUseFormatterIfExists() { File.Delete("tracewithheaderandfooter.log"); FlatFileTraceListener listener = new FlatFileTraceListener("tracewithheaderandfooter.log", "--------header------", "=======footer===========", new TextFormatter("DUMMY{newline}DUMMY")); // need to go through the source to get a TraceEventCache LogSource source = new LogSource("notfromconfig", new[] { listener }, SourceLevels.All); source.TraceData(TraceEventType.Error, 0, new LogEntry("message", "cat1", 0, 0, TraceEventType.Error, "title", null)); listener.Dispose(); string strFileContents = GetFileContents("tracewithheaderandfooter.log"); Assert.AreEqual("--------header------" + Environment.NewLine + "DUMMY" + Environment.NewLine + "DUMMY" + Environment.NewLine + "=======footer===========" + Environment.NewLine, strFileContents); }
public void ListenerWillFallbackToTraceEntryToStringIfFormatterDoesNotExists() { LogEntry testLogEntry = new LogEntry("message", "cat1", 0, 0, TraceEventType.Error, "title", null); StreamWriter writer = new StreamWriter("trace.log"); FlatFileTraceListener listener = new FlatFileTraceListener(writer); // need to go through the source to get a TraceEventCache LogSource source = new LogSource("notfromconfig", new[] { listener }, SourceLevels.All); source.TraceData(TraceEventType.Error, 0, testLogEntry); listener.Dispose(); string strFileContents = GetFileContents("trace.log"); string testLogEntryAsString = testLogEntry.ToString(); Assert.IsTrue(-1 != strFileContents.IndexOf(testLogEntryAsString)); }
public void FlatFileListenerReplacedInexistingEnviromentVariables() { string fileName = @"%FOO%\%MY_VARIABLE%\foo.log"; FlatFileTraceListener listener = new FlatFileTraceListener(fileName); listener.TraceData(new TraceEventCache(), "source", TraceEventType.Error, 1, "This is a test"); listener.Dispose(); string fileNameFromListener = string.Empty; string expandedFileName = EnvironmentHelper.ReplaceEnvironmentVariables(fileName); string expectedFileName = Path.GetFileName(expandedFileName); bool result = File.Exists(expandedFileName); Assert.IsTrue(result); File.Delete(expandedFileName); Assert.AreEqual(expectedFileName, expandedFileName); }
public void FlatFileListenerReplacedEnviromentVariablesWillFallBackIfNotPrivilegesToRead() { string environmentVariable = "%USERPROFILE%"; string fileName = Path.Combine(environmentVariable, "foo.log"); EnvironmentPermission denyPermission = new EnvironmentPermission(PermissionState.Unrestricted); denyPermission.Deny(); try { FlatFileTraceListener listener = new FlatFileTraceListener(fileName); listener.TraceData(new TraceEventCache(), "source", TraceEventType.Error, 1, "This is a test"); listener.Dispose(); } finally { EnvironmentPermission.RevertAll(); } Assert.Fail("Permission was not denied."); }
public void FlatFileTraceListenerMultipleWrites() { File.Delete("tracewithheaderandfootermultiplewrites.log"); string header = "--------header------"; int numberOfWrites = 4; FlatFileTraceListener listener = new FlatFileTraceListener("tracewithheaderandfootermultiplewrites.log", header, "=======footer===========", new TextFormatter("DUMMY{newline}DUMMY")); // need to go through the source to get a TraceEventCache LogSource source = new LogSource("notfromconfig", new[] { listener }, SourceLevels.All); for (int writeLoop = 0; writeLoop < numberOfWrites; writeLoop++) { source.TraceData(TraceEventType.Error, 0, new LogEntry("message", "cat1", 0, 0, TraceEventType.Error, "title", null)); } listener.Dispose(); StreamReader reader = new StreamReader("tracewithheaderandfootermultiplewrites.log"); int headersFound = NumberOfItems("tracewithheaderandfootermultiplewrites.log", header); Assert.AreEqual(numberOfWrites, headersFound); }
public static void CheckListener() { string environmentVariable = "%USERPROFILE%"; string fileName = Path.Combine(environmentVariable, "test.log"); FlatFileTraceListener listener = new FlatFileTraceListener(fileName); listener.TraceData(new TraceEventCache(), "source", TraceEventType.Error, 1, "This is a test"); listener.Dispose(); }
public void FlatFileListenerReplacedEnviromentVariables() { string fileName = @"%USERPROFILE%\foo.log"; string fileNameFromListener = string.Empty; FlatFileTraceListener listener = new FlatFileTraceListener(fileName); listener.TraceData(new TraceEventCache(), "source", TraceEventType.Error, 1, "This is a test"); listener.Dispose(); string expandedFileName = EnvironmentHelper.ReplaceEnvironmentVariables(fileName); bool result = File.Exists(expandedFileName); Assert.IsTrue(result); using (FileStream stream = File.Open(expandedFileName, FileMode.Open)) { fileNameFromListener = stream.Name; } File.Delete(expandedFileName); Assert.AreEqual(expandedFileName, fileNameFromListener); }
public void FlatFileTraceListenerMultipleWrites() { File.Delete("tracewithheaderandfootermultiplewrites.log"); string header = "--------header------"; int numberOfWrites = 4; FlatFileTraceListener listener = new FlatFileTraceListener("tracewithheaderandfootermultiplewrites.log", header, "=======footer===========", new TextFormatter("DUMMY{newline}DUMMY")); // need to go through the source to get a TraceEventCache LogSource source = new LogSource("notfromconfig", new[] { listener }, SourceLevels.All); for (int writeLoop = 0; writeLoop < numberOfWrites; writeLoop++) source.TraceData(TraceEventType.Error, 0, new LogEntry("message", "cat1", 0, 0, TraceEventType.Error, "title", null)); listener.Dispose(); StreamReader reader = new StreamReader("tracewithheaderandfootermultiplewrites.log"); int headersFound = NumberOfItems("tracewithheaderandfootermultiplewrites.log", header); Assert.AreEqual(numberOfWrites, headersFound); }