programing

NLog를 사용하여 ${basedir}는 어디에 있습니까?

muds 2023. 5. 11. 21:58
반응형

NLog를 사용하여 ${basedir}는 어디에 있습니까?

제가 그걸 완전히 놓치고 있지 않는 한, 저는 NLog 문서가 사용하는 것처럼 보입니다.${basedir}그 예에서, 그것의 위치가 무엇인지 설명하지 않고.

모든 가능한 옵션과 의미 있는 설명이 나열된 정보는 어디에서 찾을 수 있습니까?

다음 구성이 정의되어 있습니다.

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true">
  <targets>
    <target name="file" xsi:type="File"
                layout="${longdate} ${logger} ${message}"
                fileName="${basedir}/logs/${shortdate}.txt"
                keepFileOpen="false"
                encoding="iso-8859-2" />
  </targets>
  <rules>
    <logger name="*" minlevel="Debug" writeTo="file" />
  </rules>
</nlog>

제가 볼 수 있는 한 작동하지만, 어디에 기록되는지 전혀 모르겠습니다.

${basedir}응용 프로그램이 실행되는 디렉터리입니다.AppDomain.기본 디렉터리

설명서 페이지가 도움이 될 거라고 생각합니다.

이미 제공된 답변과 의견을 바탕으로 에 대한 답변을 요약할 수 있습니다.NET 응용 프로그램:

AppDomain.CurrentDomain.BaseDirectory

콘솔 또는 Windows Forms 응용 프로그램의 경우 이 디렉터리는bin/debugVisual Studio에 있는 동안.응용 프로그램이 배포된 경우 경로는 실행 파일 경로일 가능성이 높습니다.

웹 응용 프로그램(ASP)의 경우.NET) 웹 응용 프로그램 루트 디렉터리가 됩니다.

파일이 표시되지 않는 것은 NLog 구성 오류 및 대상 파일을 쓸 수 없는 등의 몇 가지 원인으로 인해 트리거될 수 있습니다.이러한 오류를 표시하려면 NLog.config(또는 web.config 또는 app.config에 포함된 Nlog 구성)에서 이러한 오류를 출력할 내부 로그 파일을 지정해야 합니다.

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      internalLogFile="C:\NLogError\NLog.log">

<!-- targets and rules come here -->

</nlog>

또 다른 실패 가능성은 NLog.config를 사용하는 경우 NLog가 구성 파일을 찾을 수 없다는 것입니다.파일을 빌드에서 항상 복사로 설정하면 실행 시 NLog가 파일을 찾을 수 있도록 파일이 bin 디렉토리에 저장됩니다.

NLog 구성 정보를 App.config에 복사하면 이 문제가 발생하지 않습니다.

그것은 또한 플랫폼에 따라 다릅니다.정기적으로.Net 프로젝트 정말 bin 또는 bin/debug 등(빌드 설정에 따라 다름)

coreclr / aspnet5의 경우 dnx 런타임의 bin 폴더입니다.그건 아직 진행 중인 작업입니다.

언급URL : https://stackoverflow.com/questions/35224317/where-is-basedir-located-using-nlog

반응형