During service calls, we log the input and output params. When we started to integration test the system and a user performed a search, a beeping could be heard from the computer.
This, obviously caused some distress to anyone near the PC as it was constant and annoying.
As this was only being heard during a search service call the first, and very incorrect thought, was that the search was very poor and sql server was struggling.
After 5 seconds of debugging I found the following line to be the cause of the problem:
logger.Info(GetExitMessage(invocation, returnValue, executionTimeSpan));
We were using reflection to generate our message and log4net as the logger. I was still unsure of what the problem was.
I looked at the message that was being generated and replicated the problem in a simple console application. I eventually got the following piece of code to reproduce the mysterious beep:
1 using System;
2 using log4net;
3
4 namespace log4netProblem
5 {
6 class Program
7 {
8 static ILog _logger = LogManager.GetLogger(typeof(Program));
9
10 static void Main(string[] args)
11 {
12 try
13 {
14 log4net.Config.BasicConfigurator.Configure();
15 string s = "•";
16 _logger.Info(s);
17 }
18 catch (Exception e)
19 {
20 Console.Write(e);
21 }
22 finally
23 {
24 Console.WriteLine("Press any key to exit...");
25 Console.ReadKey();
26 }
27 }
28 }
29 }
Yes yes yes, I see the problem now. "•" was the shortcut for making a console beep.
It turns out that in my haste of setting up the appenders in the web application, I had left the console appender in there and the PC wasn't about to catch fire at all.
All I can say is oops.
No comments:
Post a Comment