다양한 이유로 NLog에서 로그를 출력 할 때 기본 십진수 형식이 아닌 16 진수로 processId를 출력하고 싶습니다.Nlog에서 특정 필드의 형식 변경
레이아웃에 ${processid}
을 사용하고 있습니다.이 레이아웃에서는 십진수로 출력됩니다. ${shortdate:format=YYYY-mm-dd}
과 같은 형식 특성을 사용하여 날짜 서식을 지정할 수 있음을 알고 있습니다. int와 비슷한 것이 있습니까?
다양한 이유로 NLog에서 로그를 출력 할 때 기본 십진수 형식이 아닌 16 진수로 processId를 출력하고 싶습니다.Nlog에서 특정 필드의 형식 변경
레이아웃에 ${processid}
을 사용하고 있습니다.이 레이아웃에서는 십진수로 출력됩니다. ${shortdate:format=YYYY-mm-dd}
과 같은 형식 특성을 사용하여 날짜 서식을 지정할 수 있음을 알고 있습니다. int와 비슷한 것이 있습니까?
NLog를 사용하여 즉시 사용할 수있는 기능에 대해서는 알지 못하지만,이를 위해 LayoutRendererWrapper를 쉽게 작성할 수 있습니다. 당신의 NLog.config 파일에서이처럼 당신이 변환하고자 필드, 뭔가를 감싸는 것 :
http://nlog-project.org/2008/11/22/wrapper-layout-renderers-are-coming-to-nlog.html
당신은 소스를 찾을 수 있습니다 여기에
${hex:inner=${processid}}
이 기능을 설명하는 블로그 게시물입니다 여기에 전달 LayoutRendererWrappers의 모든 :
https://github.com/jkowalski/NLog/tree/master/src/NLog/LayoutRenderers/Wrappers
SOMET을 보일 수 있습니다 래퍼 이 (컴파일되지 않은 및 검증되지 않은)처럼 힝 :
[LayoutRenderer("hex")]
[ThreadAgnostic]
public sealed class HexLayoutRendererWrapper : WrapperLayoutRendererBase
{
public HexLayoutRendererWrapper()
{
this.Culture = CultureInfo.InvariantCulture;
}
public CultureInfo Culture { get; set; }
protected override string Transform(string text)
{
int x;
if (Int32.TryParse(text, out x))
{
string hex = string.Format("{0:X}", x);
return hex;
}
else
{
return text;
}
}
}
당신도 일반화하고 쓰기 전에 값에 적용되는 서식 속성을 가진 "서식"래퍼를 만들 수 있습니다.