我有一个用于登录Web api解决方案的单独项目。在日志记录项目中,我正在使用log4net dll。一切正常。
好像我也必须在我的Web api项目中添加log4net dll,这也是我的应用程序的入口点。
1)为什么我需要在Web api项目中添加log4net dll?
2)是否可以在Web api项目中不添加log4net的情况下完成此工作?我喜欢在不同的应用程序中使用记录器对象,并且不想在多个项目中使用log4net。
public class Logger : ILogger
{
private static readonly ILog LoggerObj = LogManager.GetLogger("ErrorLog");
public Logger()
{
XmlConfigurator.Configure();
}
}
Global.asax
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
UnityConfig.RegisterComponents();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
// Initialize log4net.
//log4net.Config.XmlConfigurator.Configure();
// Initialize log4net.
var logger = new Logger();
}
答案 0 :(得分:0)
我看到的唯一方法是将您的Logging项目添加为对Web api项目或您想使用Logging的任何其他项目的引用。 在您的Web Api项目上,右键单击“引用”->“添加引用”。在“项目”->“解决方案”下,选择“正在记录项目”,然后单击“确定”。
编辑:
看看我的实现。我在一个单独的项目中做过,然后按照上述步骤链接到其他项目。
namespace MyProject.Logger {
public partial class Log {
private static readonly Log _instance = new Log();
protected ILog monitoringLogger;
protected static ILog debugLogger;
private Log() {
monitoringLogger = LogManager.GetLogger(System.Environment.MachineName);
debugLogger = LogManager.GetLogger(System.Environment.MachineName);
}
public static void Debug(string message) {
debugLogger.Debug(message);
}
public static void Debug(string message, Exception exception) {
debugLogger.Debug(message, exception);
}
public static void Info(string message) {
_instance.monitoringLogger.Info(message);
}
}
希望有帮助