mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
lib/logger: add -loggerTimezone
command-line flag for adjusting timezone for timestamps in log messages
This commit is contained in:
parent
5481906db6
commit
3fe848cdd7
2 changed files with 16 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
# tip
|
# tip
|
||||||
|
|
||||||
|
* FEATURE: added `-loggerTimezone` command-line flag for adjusting time zone for timestamps in log messages. By default UTC is used.
|
||||||
* FEATURE: added `-search.maxStepForPointsAdjustment` command-line flag, which can be used for disabling adjustment for points returned `/api/v1/query_range` handler if such points have timestamps closer than `-search.latencyOffset` to the current time. Such points may contain incomplete data, so they are substituted by the previous values for `step` query args smaller than one minute by default.
|
* FEATURE: added `-search.maxStepForPointsAdjustment` command-line flag, which can be used for disabling adjustment for points returned `/api/v1/query_range` handler if such points have timestamps closer than `-search.latencyOffset` to the current time. Such points may contain incomplete data, so they are substituted by the previous values for `step` query args smaller than one minute by default.
|
||||||
* FEATURE: vmalert: added `-datasource.queryStep` command-line flag for passing `step` query arg to `/api/v1/query` endpoint. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1025
|
* FEATURE: vmalert: added `-datasource.queryStep` command-line flag for passing `step` query arg to `/api/v1/query` endpoint. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1025
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ var (
|
||||||
loggerLevel = flag.String("loggerLevel", "INFO", "Minimum level of errors to log. Possible values: INFO, WARN, ERROR, FATAL, PANIC")
|
loggerLevel = flag.String("loggerLevel", "INFO", "Minimum level of errors to log. Possible values: INFO, WARN, ERROR, FATAL, PANIC")
|
||||||
loggerFormat = flag.String("loggerFormat", "default", "Format for logs. Possible values: default, json")
|
loggerFormat = flag.String("loggerFormat", "default", "Format for logs. Possible values: default, json")
|
||||||
loggerOutput = flag.String("loggerOutput", "stderr", "Output for the logs. Supported values: stderr, stdout")
|
loggerOutput = flag.String("loggerOutput", "stderr", "Output for the logs. Supported values: stderr, stdout")
|
||||||
|
loggerTimezone = flag.String("loggerTimezone", "UTC", "Timezone to use for timestamps in logs. Local timezone can be used")
|
||||||
disableTimestamps = flag.Bool("loggerDisableTimestamps", false, "Whether to disable writing timestamps in logs")
|
disableTimestamps = flag.Bool("loggerDisableTimestamps", false, "Whether to disable writing timestamps in logs")
|
||||||
|
|
||||||
errorsPerSecondLimit = flag.Int("loggerErrorsPerSecondLimit", 0, "Per-second limit on the number of ERROR messages. If more than the given number of errors "+
|
errorsPerSecondLimit = flag.Int("loggerErrorsPerSecondLimit", 0, "Per-second limit on the number of ERROR messages. If more than the given number of errors "+
|
||||||
|
@ -37,10 +38,23 @@ func Init() {
|
||||||
setLoggerOutput()
|
setLoggerOutput()
|
||||||
validateLoggerLevel()
|
validateLoggerLevel()
|
||||||
validateLoggerFormat()
|
validateLoggerFormat()
|
||||||
|
initTimezone()
|
||||||
go logLimiterCleaner()
|
go logLimiterCleaner()
|
||||||
logAllFlags()
|
logAllFlags()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initTimezone() {
|
||||||
|
tz, err := time.LoadLocation(*loggerTimezone)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("cannot load timezone %q, so using UTC; error: %s", *loggerTimezone, err)
|
||||||
|
tz = time.UTC
|
||||||
|
}
|
||||||
|
timezone = tz
|
||||||
|
}
|
||||||
|
|
||||||
|
var timezone *time.Location
|
||||||
|
|
||||||
func setLoggerOutput() {
|
func setLoggerOutput() {
|
||||||
switch *loggerOutput {
|
switch *loggerOutput {
|
||||||
case "stderr":
|
case "stderr":
|
||||||
|
@ -192,7 +206,7 @@ func (lw *logWriter) Write(p []byte) (int, error) {
|
||||||
func logMessage(level, msg string, skipframes int) {
|
func logMessage(level, msg string, skipframes int) {
|
||||||
timestamp := ""
|
timestamp := ""
|
||||||
if !*disableTimestamps {
|
if !*disableTimestamps {
|
||||||
timestamp = time.Now().UTC().Format("2006-01-02T15:04:05.000Z")
|
timestamp = time.Now().In(timezone).Format("2006-01-02T15:04:05.000Z0700")
|
||||||
}
|
}
|
||||||
levelLowercase := strings.ToLower(level)
|
levelLowercase := strings.ToLower(level)
|
||||||
_, file, line, ok := runtime.Caller(skipframes)
|
_, file, line, ok := runtime.Caller(skipframes)
|
||||||
|
|
Loading…
Reference in a new issue