디버그를 얻을 수없는 이유는 디버그가 가장 낮은 수준의 로그 수준 이기 때문입니다. nlog.config 파일의 규칙 태그에 다음 태그를 추가하기 만하면됩니다.
<logger name="*" minlevel="Debug" writeTo="console" />
-------------------3 개의 서로 다른 로그 대상을 사용하고 있습니다.
데이터베이스 대상이 정보 수준으로 설정되어 있으므로 디버그 메시지가 거기에 전달되지 않습니다. 파일 대상은 오류 메시지 (이상) 만 허용하므로 디버그도 없습니다.
마지막 대상 콘솔은 디버그 메시지를 약탈해야하는 콘솔입니다. 하지만 제가보기에 당신은 메시지의 레이아웃을 설정하지 않았습니다. 이 문서를 보십시오 . 레이아웃이 필수 필드라고 말합니다.
또한 일시적으로 추가 파일 대상을 설정하고 디버그 메시지를 허용하도록 설정하는 것이 좋습니다.
-------------------이 문제가있는 다른 사람을 위해 비슷한 질문에 대한 답변이 저를 구했습니다. https://stackoverflow.com/a/8881521/3959735
별도의 NLog.config 파일을 사용하는 경우 파일 속성을 통해 "항상 복사"로 설정되어 있는지 확인하십시오. 또는 기본 App.config에 NLog 구성 섹션을 포함 할 수 있습니다.
다른 프로젝트에서 수동으로 NLog 구성 파일을 복사하려고 시도하여이 문제를 발생 시켰을 수 있습니다. 또는 내 프로젝트에 NLog를 추가 할 때 권한 오류가 발생했기 때문에 (특정 세부 정보를 기억할 수 없습니다)-누군가가 자신의 문제를 진단하는 데 도움이되는 경우이 정보를 전달하기 만하면됩니다.
-------------------프로젝트에 nlog.config 파일 추가
내 구성 파일의 예 :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File" fileName="${basedir}/Logs/${date:format=yyyy-MM-dd}_log.txt" />
<target name="logconsole" xsi:type="Console" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logconsole" />
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
</configuration>
-------------------Visual Studio가 프로젝트에 자동으로 추가하는 기본 appsettings.json과 관련된 문제를 발견했습니다. 이렇게 생겼어요.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
해결책은이 섹션을 제거하거나 이름을 바꾸는 것입니다.
{
"Logging-DISABLE": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
이를 통해 nlog.config를 활용할 수 있습니다.
출처
https://stackoverflow.com/questions/22006804