~ttt/minifluxlite

91508c50b54c9a0375856a17b2e774d42782b81d — Frédéric Guillot 4 years ago f7b7b63
Add option to toggle date/time in log messages
5 files changed, 49 insertions(+), 1 deletions(-)

M cli/cli.go
M config/options.go
M config/parser.go
M logger/logger.go
M miniflux.1
M cli/cli.go => cli/cli.go +4 -0
@@ 78,6 78,10 @@ func Parse() {
		return
	}

	if config.Opts.LogDateTime() {
		logger.EnableDateTime()
	}

	if flagDebugMode || config.Opts.HasDebugMode() {
		logger.EnableDebug()
	}

M config/options.go => config/options.go +9 -0
@@ 11,6 11,7 @@ import (

const (
	defaultHTTPS                 = false
	defaultLogDateTime           = false
	defaultHSTS                  = true
	defaultHTTPService           = true
	defaultSchedulerService      = true


@@ 47,6 48,7 @@ const (
// Options contains configuration options.
type Options struct {
	HTTPS                     bool
	logDateTime               bool
	hsts                      bool
	httpService               bool
	schedulerService          bool


@@ 84,6 86,7 @@ type Options struct {
func NewOptions() *Options {
	return &Options{
		HTTPS:                     defaultHTTPS,
		logDateTime:               defaultLogDateTime,
		hsts:                      defaultHSTS,
		httpService:               defaultHTTPService,
		schedulerService:          defaultSchedulerService,


@@ 118,6 121,11 @@ func NewOptions() *Options {
	}
}

// LogDateTime returns true if the date/time should be displayed in log messages.
func (o *Options) LogDateTime() bool {
	return o.logDateTime
}

// HasDebugMode returns true if debug mode is enabled.
func (o *Options) HasDebugMode() bool {
	return o.debug


@@ 283,6 291,7 @@ func (o *Options) HTTPClientMaxBodySize() int64 {

func (o *Options) String() string {
	var builder strings.Builder
	builder.WriteString(fmt.Sprintf("LOG_DATE_TIME: %v\n", o.logDateTime))
	builder.WriteString(fmt.Sprintf("DEBUG: %v\n", o.debug))
	builder.WriteString(fmt.Sprintf("HTTP_SERVICE: %v\n", o.httpService))
	builder.WriteString(fmt.Sprintf("SCHEDULER_SERVICE: %v\n", o.schedulerService))

M config/parser.go => config/parser.go +2 -0
@@ 71,6 71,8 @@ func (p *Parser) parseLines(lines []string) (err error) {
		value := strings.TrimSpace(fields[1])

		switch key {
		case "LOG_DATE_TIME":
			p.opts.logDateTime = parseBool(value, defaultLogDateTime)
		case "DEBUG":
			p.opts.debug = parseBool(value, defaultDebug)
		case "BASE_URL":

M logger/logger.go => logger/logger.go +15 -1
@@ 7,9 7,11 @@ package logger // import "miniflux.app/logger"
import (
	"fmt"
	"os"
	"time"
)

var requestedLevel = InfoLevel
var displayDateTime = false

// LogLevel type.
type LogLevel uint32


@@ 43,6 45,11 @@ func (level LogLevel) String() string {
	}
}

// EnableDateTime enables date time in log messages.
func EnableDateTime() {
	displayDateTime = true
}

// EnableDebug increases logging, more verbose (debug)
func EnableDebug() {
	requestedLevel = DebugLevel


@@ 79,6 86,13 @@ func Fatal(format string, v ...interface{}) {
}

func formatMessage(level LogLevel, format string, v ...interface{}) {
	prefix := fmt.Sprintf("[%s] ", level.String())
	var prefix string

	if displayDateTime {
		prefix = fmt.Sprintf("[%s] [%s] ", time.Now().Format("2006-01-02T15:04:05"), level)
	} else {
		prefix = fmt.Sprintf("[%s] ", level)
	}

	fmt.Fprintf(os.Stderr, prefix+format+"\n", v...)
}

M miniflux.1 => miniflux.1 +19 -0
@@ 78,11 78,30 @@ Show application version\&.
Show application version\&.
.RE

.SH CONFIGURATION FILE
The configuration file is a text file that follow these rules:
.LP
- Miniflux expects each line to be in KEY=VALUE format.
.br
- Lines beginning with # are processed as comments and ignored.
.br
- Blank lines are ignored.
.br
- There is no variable interpolation.
.PP
Keys are the same as the environment variables described below.
.br
Environment variables override the values defined in the config file.

.SH ENVIRONMENT
.TP
.B DEBUG
Set the value to 1 to enable debug logs\&.
.TP
.TP
.B LOG_DATE_TIME
Display the date and time in log messages\&.
.TP
.B WORKER_POOL_SIZE
Number of background workers (default is 5)\&.
.TP