LoginSignup
2
1

More than 5 years have passed since last update.

go-xorm/core のログレベルの定義がいつの間にか破壊的に変わっていた(>=v0.5.2)

Last updated at Posted at 2017-01-17

掲題の通りです。
go-xorm/core, go-xorm/xorm をアップデートしていたら、logger のテストが突然落ちて驚いた。今更v0.4.5 を使っていたというのもあるが……

https://github.com/go-xorm/core/commit/42bacbe76fb75f773f7aab4e7644377ef9315e82

ログレベルの値がどう変わったかを、当該部分を実行してみてみる。
https://play.golang.org/p/pYgmmeRwBK

package main

import (
    "fmt"
)

type LogLevel int

const (
    // log level definitions of go-xorm/xorm < v0.5.2
    // !nashtsai! following level also match syslog.Priority value
    LOG_v4_UNKNOWN LogLevel = iota - 2
    LOG_v4_OFF     LogLevel = iota - 1
    LOG_v4_ERR     LogLevel = iota + 3
    LOG_v4_WARNING
    LOG_v4_INFO LogLevel = iota + 6
    LOG_v4_DEBUG
)

const (
    // log level definitions of go-xorm/xorm >= v0.5.2
    LOG_v5_DEBUG LogLevel = iota
    LOG_v5_INFO
    LOG_v5_WARNING
    LOG_v5_ERR
    LOG_v5_OFF
    LOG_v5_UNKNOWN
)

func main() {
    fmt.Println("v4_UNKNOWN ", LOG_v4_UNKNOWN)
    fmt.Println("v4_OFF ", LOG_v4_OFF)
    fmt.Println("v4_ERR ", LOG_v4_ERR)
    fmt.Println("v4_WARNING ", LOG_v4_WARNING)
    fmt.Println("v4_INFO", LOG_v4_INFO)
    fmt.Println("v4_DEBUG", LOG_v4_DEBUG)

    fmt.Println("v5_UNKNOWN ", LOG_v5_UNKNOWN)
    fmt.Println("v5_OFF ", LOG_v5_OFF)
    fmt.Println("v5_ERR ", LOG_v5_ERR)
    fmt.Println("v5_WARNING ", LOG_v5_WARNING)
    fmt.Println("v5_INFO", LOG_v5_INFO)
    fmt.Println("v5_DEBUG", LOG_v5_DEBUG)
}

v4_UNKNOWN  -2
v4_OFF  0
v4_ERR  5
v4_WARNING  6
v4_INFO 10
v4_DEBUG 11
v5_UNKNOWN  5
v5_OFF  4
v5_ERR  3
v5_WARNING  2
v5_INFO 1
v5_DEBUG 0

UNKNOWN < OFF < ERR < WARNING < INFO < DEBUG
UNKNOWN > OFF > ERR > WARNING > INFO > DEBUG

と、数値の大小関係が逆になってる。
大小関係を使ってた部分が落ちてたので、なるほどこういうこともあるのだなと。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1