一个调用log4net和LoggingService 的示例:
using
ISharpDevelop.Core;
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using ICSharpCode.Core;
namespace LoggerTest
... {
public class Main
...{
static string[] commandLineArgs = null;
public static string[] CommandLineArgs
...{
get
...{
return commandLineArgs;
}
}
public static void Main(string[] args)
...{
#if DEBUG
if (Debugger.IsAttached)
...{
Run(args);
return;
}
#endif
// Do not use LoggingService here (see comment in Run(string[]))
try
...{
Run(args);
}
catch (Exception ex)
...{
try
...{
HandleMainException(ex);
}
catch (Exception loadError)
...{
// HandleMainException can throw error when log4net is not found
MessageBox.Show(loadError.ToString(), "Critical error (Logging service defect?)");
}
}
}
static void HandleMainException(Exception ex)
...{
LoggingService.Fatal(ex);
try
...{
MessageBox.Show(ex.ToString(), "Unhandled exception terminated");
}
catch
...{
MessageBox.Show(ex.ToString(), "Critical error (cannot use ExceptionBox)");
}
}
static void Run(string[] args)
...{
Application.SetCompatibleTextRenderingDefault(false);
RunApplication();
}
static void RunApplication()
...{
LoggingService.Info("Starting SharpDevelop...");
try
...{
for (int i = 0; i < 10; i++)
...{
LoggingService.Warn(i.ToString());
}
}
finally
...{
LoggingService.Info("Leaving RunApplication()");
}
}
}
}
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using ICSharpCode.Core;
namespace LoggerTest
... {
public class Main
...{
static string[] commandLineArgs = null;
public static string[] CommandLineArgs
...{
get
...{
return commandLineArgs;
}
}
public static void Main(string[] args)
...{
#if DEBUG
if (Debugger.IsAttached)
...{
Run(args);
return;
}
#endif
// Do not use LoggingService here (see comment in Run(string[]))
try
...{
Run(args);
}
catch (Exception ex)
...{
try
...{
HandleMainException(ex);
}
catch (Exception loadError)
...{
// HandleMainException can throw error when log4net is not found
MessageBox.Show(loadError.ToString(), "Critical error (Logging service defect?)");
}
}
}
static void HandleMainException(Exception ex)
...{
LoggingService.Fatal(ex);
try
...{
MessageBox.Show(ex.ToString(), "Unhandled exception terminated");
}
catch
...{
MessageBox.Show(ex.ToString(), "Critical error (cannot use ExceptionBox)");
}
}
static void Run(string[] args)
...{
Application.SetCompatibleTextRenderingDefault(false);
RunApplication();
}
static void RunApplication()
...{
LoggingService.Info("Starting SharpDevelop...");
try
...{
for (int i = 0; i < 10; i++)
...{
LoggingService.Warn(i.ToString());
}
}
finally
...{
LoggingService.Info("Leaving RunApplication()");
}
}
}
}