/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Text;
using System.Reflection;
using System.Collections;
using System.Web.Management;
using System.Web.Configuration;
using System.Collections.Generic;
using System.Web.Compilation;
using Everest.Library.Reflection;
using System.Web;
using System.Security.Permissions;
namespace Everest.Library.HealthMonitor{
public class HealthMonitoringLogging
{
static HealthMonitoringLogging()
{
}
public static void LogWebEvent(WebBaseEvent webBaseEvent)
{
webBaseEvent.Raise();
}
public static void LogError(Exception e)
{
Exception ex = e;
//while (ex.InnerException != null)
//{
// ex = ex.InnerException;
//}
//Inherit from WebRequestErrorEvent can not run on medium trust level. So we must create a new WebRequestErrorEvent object use reflection.
Type webReqeustErrorEventType = typeof(WebRequestErrorEvent);
var constructor = webReqeustErrorEventType.GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(string), typeof(object), typeof(int), typeof(Exception) }, new ParameterModifier[] { });
var errorEvent = constructor.Invoke(new object[] { ex.Message, ex.Source, 100001, ex });
LogWebEvent((WebBaseEvent)errorEvent);
}
}
}
|