Microsoft 로깅 확장 패키지를 사용하여 NetCore 2.0으로 로깅을 실험하는 간단한 테스트 프로젝트가 있습니다.netcore가 콘솔에 로깅하지 않습니다.
내가 처음으로 앱을 실행할 때 정보 메시지가 예상대로 기록된다는 문제가 있습니다. 내가 가지고있는 이상한 행동은 후속 실행이 전혀 메시지를 생성하지 않는다는 것이다.
내 프로젝트는 인터넷 코어 2.0 프레임 워크를 대상으로 다음과 같은 NuGet 패키지를 설치했습니다
- Microsoft.Extensions.Logging에게
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.Logging을 .Console
- Microsoft.Extensions.Logging.Debug 내 샘플 코드 해요되어 다음
로깅 작업을 시도하는 중 :
using System;
namespace LoggingNetCore2
{
using Microsoft.Extensions.Logging;
class Program
{
static void Main(string[] args)
{
var loggerFactory = new LoggerFactory();
loggerFactory.AddConsole();
loggerFactory.AddDebug(); // <-- why is this needed for console logging?
var logger = loggerFactory.CreateLogger(typeof(Program));
logger.LogInformation("Hello, World!");
logger.LogTrace("trace");
logger.LogDebug("debug");
logger.LogWarning("warning");
logger.LogCritical("critical");
logger.LogError("errrrr");
//using (logger.BeginScope("MyMessages"))
//{
// logger.LogInformation("Beginning Operation...");
// logger.LogInformation("Doing something cool... please wait.");
// logger.LogInformation("Completed successfully.");
//}
}
}
}
위를 실행할 때 콘솔 창에 아무 출력도 표시되지 않습니다. 무슨 일이 벌어 질지 생각 나게하는 아이디어가 있습니까?
상황은 나는 시도했다 :
- 추가를 Microsoft.Extensions.Logging.Abstractions 패키지, 나는 막연하게 할 필요가 기억하는 그 NetCore에서 과거에 1.0 애플 리케이션.
- 위의 패키지를 제거/재설치했습니다.
- 난 심지어 dotnet.exe 명령을 통해 명령 줄에서 응용 프로그램을 실행했지만 아무 소용이 시도했다.
- NetCore 프레임 워크 1.1 (NuGet 패키지와 1.1 버전)으로 다운 그레이드하면 예상대로 작동합니다.
편집 : 나는 혼합으로 디버그 로그 공급자를 추가하는 경우 나는 콘솔 창에 지금 보여주는 로그를 얻었다.
NetCore 1.x 앱에서 콘솔 공급자를 추가하기 만하면됩니다.
편집 # 2 : 콘솔 로깅 공급자가 net-core-1.x 버전 에서처럼 콘솔에 메시지를 즉시 플러시하지 않습니다. 그것은 다른 스레드에서 실행되는 것으로 보입니다. 정보는이 웹 페이지를 참조하십시오 : https://github.com/aspnet/Logging/issues/631