카테고리 없음

[씨#] NLog가 디버그 메시지를 작성하지 않음

행복을전해요 2021. 1. 15. 05:38

디버그를 얻을 수없는 이유는 디버그가 가장 낮은 수준의 로그 수준 이기 때문입니다. 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