В настоящее время я разрабатываю библиотеку регистрации приложений, используя встроенный TraceListener. Эта библиотека будет использоваться во многих проектах и должна предлагать простой интерфейс, где мне нужно только заботиться о том, что WHAT будет записано в файл журнала, но не КАК.
Используя пространство имен отражения, я могу выяснить, какое приложение в настоящее время называется функцией журнала (получение имени сборки выполнения), но я также хочу указать имя функции и класса, которые вызвали функцию ведения журнала.
Скажем, у меня есть:
public static void LogInfo(string vLogText) {
Trace.WriteLine(
MethodInfo.GetCurrentMethod().Name
+ this.GetType().ToString() + vLogText);
}
Когда я вызываю из другого проекта (класс: TestClass, метод: TestMethod)
Tracer.LogInfo("log this!")
Я ожидаю увидеть в журнале:
TestClass, TestMethod, log this!
Но вместо этого я получил
TracerClass, LogInfo, log this!
Как получить родительский метод и имя класса?