zoukankan      html  css  js  c++  java
  • nxlog4go Log Levels and Pattern Layout

    Log levels

    nxlog4go provides log levels as below:

    type Level int
    
    const (
    	FINEST Level = iota
    	FINE
    	DEBUG
    	TRACE
    	INFO
    	WARNING
    	ERROR
    	CRITICAL
    	_SILENT_ = 100
    )
    
    // Strings
    var (
    	levelStrings = [...]string{"FNST", "FINE", "DEBG", "TRAC", "INFO", "WARN", "EROR", "CRIT", "OFFL"}
    )
    

    DEBUG - WARNING, are more useful.

    ERROR, may cause the program exited.

    CRITICAL, may crash the program.

    _SILENT_, used during configuration to turn in quiet mode. It is used in loglog (internal logger) and set as default.

    Setting filter level

    var log = l4g.New(l4g.DEBUG)
    

    Setting the log level when build a logger.

    log.SetLevel(l4g.WARNING)
    

    Setting the output level for the logger. Any log's level which is lower then WARNING should be ignored.

    SetXXX functions in nxlog4go always return a point, so it is chainable. For example:

    var log = l4g.New(l4g.DEBUG).SetPrefix("example").SetPattern("[%T %D %Z] [%L] (%P:%s) %M
    ")
    

    Pattern layout

    • Pattern codes
    // %N - Time (15:04:05.000000)
    // %T - Time (15:04:05)
    // %t - Time (15:04)
    // %Z - Zone (-0700)
    // %z - Zone (MST)
    // %D - Date (2006/01/02)
    // %Y - Date (2006-01-02)
    // %d - Date (01/02/06)
    // %L - Level (FNST, FINE, DEBG, TRAC, WARN, EROR, CRIT)
    // %l - Level
    // %P - Prefix
    // %S - Source
    // %s - Short Source
    // %n - Line number
    // %M - Message
    // %R - Return (
    )
    // Ignores unknown formats
    
    • Some default patterns
    var (
    	PATTERN_DEFAULT = "[%D %T %z] [%L] (%s:%n) %M
    "
    	PATTERN_SHORT   = "[%t %d] [%L] %M
    "
    	PATTERN_ABBREV  = "[%L] %M
    "
    	PATTERN_JSON	= "{"Level":%l,"Created":"%YT%N%Z","Prefix":"%P","Source":"%S","Line":%n,"Message":"%M"}"
    )
    
    • Setting pattern
    log.SetPattern("[%T %D %Z] [%L] (%P:%s) %M
    ")
    

    " " is byte 0x13. "%R" is same and always used in configuration.

    Or:

    log.SetPattern(PATTERN_JSON)
    

    PATTERN_JSON encode the log to JSON format. It is 2x faster than JSON encoder.

    • Output like
    [22:48:35 2018/03/01 +08:00] [INFO] (example:example.go) The time is now: 22:48:35 CST 2018/03/01
    [22:48:35.248443 2018/03/01 CST] [INFO] (prefix1:example.go) The time is now: 22:48:35 CST 2018/03/01
    [14:48:35 2018/03/01 +08:00] [INFO] (example:example.go) Using UTC time stamp. Now: 22:48:35 CST 2018/03/01
    [22:48:35 2018/03/01 +08:00] [INFO] (example:example.go) Using local time stamp. Now: 22:48:35 CST 2018/03/01
    
    • Setting UTC time zone
    log.Layout().Set("utc", true)
    

    Example

    See also:

    example.go

  • 相关阅读:
    FastJSON使用笔记
    使用mysql-connector-java出现的错误
    Maven的学习
    前端部分-CSS基础介绍
    前端知识之HTML内容
    python--使用pymyslq操作数据库
    python---反射详解
    python----re正则模块详解
    python---str和repr
    python---random模块详解
  • 原文地址:https://www.cnblogs.com/ccpaging/p/8491023.html
Copyright © 2011-2022 走看看