Вам нужно явно перехватить исключение в переменную, а затем вы можете его опросить, разобрать на части, чтобы написать его части в другом месте.
catch(Exception exc)
{
Console.Write(exc.Message);
}
System.Exception является базовым классом для всех исключений, поэтому он может представлять любое выбрасываемое исключение. См. Все члены класса исключений из MSDN.
Edit:
Стандартный объект исключения .NET не имеет eventid, category и EventType, поэтому вы должны решить, что это будет, перед записью в стороннюю утилиту ведения журнала.
Например, вы можете классифицировать исключения в зависимости от типа исключения, потому что вы можете различать их при перехвате следующим образом:
catch(FileNotFoundException fnfExc)
{
Logger.Log(fnfExce.Message, CategoryEnum.DiskError);
}
catch(FilePermissionError permExc)
{
Logger.Log(permExc.Message, CategoryEnum.DiskError);
}
catch(Exception exc) { //catches anything else not caught above
Logger.Log(exc.Message, CategoryEnum.Uknown);
}