У меня есть проект asp.net, который вызывает мой класс-оболочку NLog (.netframework 4.7). Чтобы заставить {aspnet-request} работать, мне нужно было добавить ссылку на проект NLog.Web на проект asp.net вместе со ссылкой на мой класс-оболочку NLog. Есть ли способ заставить вызовы {aspnet} работать, не ссылаясь на NLog.Web из проекта asp.net и просто ссылаясь на мой класс-оболочку NLog? Я пытался добавить расширения для добавления сборки NLog.Web в мой файл NLog.config, но безрезультатно. Я также попытался просто сослаться на NLog.Web в моем классе оболочки. Но из класса проекта asp.net выдается ошибка, которая говорит, что он не может найти NLog.Web. Заранее спасибо.
Текущие ссылки: мои ссылки
NLog Wrapper Class
using System;
using NLog;
public class MyLogger {
private Logger _logger;
public MyLogger(string name)
{
_logger = LogManager.GetLogger(name);
}
public void Info(string msg, params object[] args)
{
LogEventInfo logEvent = new LogEventInfo(LogLevel.Info, _logger.Name, null, msg, args);
_logger.Log(typeof(MyLogger), logEvent);
}
}
Asp.Net Проект, который вызывает NLog класс-оболочку:
WebApplication.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
EventLog.MyLogger l = new EventLog.MyLogger("uuu");
l.Info("Test {param1} and {param2}", new { OrderId = 2, Status = "Processing" }, new { OrderId = 1, Status = "Processing" });
}
}
}
Вот мой NLog.config
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
throwConfigExceptions="true"
internalLogLevel="info"
internalLogFile="${basedir}\logs\internal\nlog.log">
<extensions>
<add assembly="NLog.Web"/>
</extensions>
<!-- NLog wikipedia: https://github.com/nlog/nlog/wiki/Tutorial -->
<!-- the targets to write to -->
<targets async="true">
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="${basedir}\logs\events\${date:format=yyyyMMdd}-${appsetting:item=Version}-${appsetting:item=Environment}.log"
layout="${longdate}
|${uppercase:${level}}
|IP:${aspnet-request-ip}
|Identity:${windows-identity}
|Controller:${aspnet-mvc-controller}
|Action:${aspnet-mvc-action}
|Callsite:${callsite}
|Message:${message} />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--All logs-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
</rules>
</nlog>
Это ошибка, которую я получаю в своем классе оболочки NLog: Сообщение об ошибке, которое я получаю