Skip to content

soultomind/TLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TLog

System.Diagnostics.Trace 래퍼 클래스

해당 프로젝트는 간단한 패턴레이아웃과 로그레벨을 제공합니다.

PatternLayout

TLogger.DefaultPatternLayout = "%includefilter %level %date [%C:%M] %message%newline"

위와 같이 DefaultPatternLayout 속성을 통하여 출력될 패턴 레이아웃 형태를 설정 할 수 있습니다. 타입에 해당 하는 문자열 앞에 '%' 붙여서 설정합니다.

ClassPatternLayout

  • 로그 출력시 클래스(해당 로그 출력 호출스택 위치의 클래스)명을 제공합니다.
    • 패턴레이아웃은 "C" 문자열이며 IsFullName 속성을 FQDN 형태로 출력할지 클래스명만 출력할지 설정 할 수 있습니다.
    /// FQDN 형태로 클래스명 출력
    TLogger.IsFullName = true;
    
    /// 클래스명만 출력
    TLogger.IsFullName = false;
    

DatePatternLayout

  • 로그 출력시 현재 날짜를 제공합니다.
    • 패턴레이아웃은 "date" 문자열이며 DateTimeFormat 속성을 통하여 패턴을 설정 할 수 있습니다.
    TLogger.DateTimeFormat = "yyyy-MM-dd hh:mm:ss:ffff";
    

IncludeFilterPatternLayout

  • 로그 출력시 디버그툴(DebugView, ..) Filter/Include 항목에서 사용될 수 있는 필터 이름을 제공합니다.
    해당 값을 설정함으로써 디버그툴 에 많은 로그 출력이 발생할때 해당 항목값을 설정해서 특정 애플리케이션에대한 로그만 추출하여 볼 수 있습니다.
    • 패턴레이아웃은 "includefilter" 문자열이며 DebugToolIncludeFilter 속성을 통하여 값을 설정 할 수 있습니다.
    TLogger.DebugToolIncludeFilter = "TLog";
    

LevelPatternLayout

  • 로그 출력시 로그레벨 값을 제공합니다. Trace 메서드를 통해 로그출력을 하였을 경우 TRACE 로그레벨 형태를 제공합니다.
    • 패턴레이아웃은 "level" 문자열입니다.

MethodPatternLayout

  • 로그 출력 메서드가 호출된 메서드명을 제공합니다.
    • 패턴레이아웃은 "M" 문자열입니다.

MessagePatternLayout

  • 출력할 메시지를 제공합니다.
    • 패턴레이아웃은 "message" 문자열입니다.

NewLinePatternLayout

  • 개행을 제공합니다.
    • 패턴레이아웃은 "newline" 문자열입니다.

ThreadPatternLayout

  • 스레드 아이디값을 제공합니다.
    • 패턴레이아웃은 "thread" 문자열이며 스레드 아이디값은 Thread.CurrentThread.ManagedThreadId 값을 사용
    Thread.CurrentThread.ManagedThreadId
    

Test Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace TLog
{
    class Program
    {
        static void Main(string[] args)
        {
            TLogger.DefaultPatternLayout = "%includefilter %level %date [%C:%M] %message%newline";
            TLogger.DebugToolIncludeFilter = "TLog";
            TLogger.Configure(Level.Warn);

            TLogger.Trace("TRACE");
            TLogger.Debug("DEBUG");
            TLogger.Info("INFO");
            TLogger.Warn("WARN");
            TLogger.Error("ERROR");
            TLogger.Fatal("FATAL");

            System.Console.ReadKey();
        }
    }
}

Output

TLog WARN 2022-06-21 09:25:49:2975 [TLog.Program:Main] WARN
TLog ERROR 2022-06-21 09:25:49:3039 [TLog.Program:Main] ERROR
TLog FATAL 2022-06-21 09:25:49:3069 [TLog.Program:Main] FATAL

Releases

No releases published

Packages

No packages published

Languages