aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2019-06-08 17:16:12 -0700
committerGravatar fguillot <fred@miniflux.net>2019-06-08 17:48:45 -0700
commit91508c50b54c9a0375856a17b2e774d42782b81d (patch)
tree995936a1bf95f1d31da8841e6aef655ffa38f75b
parentf7b7b63e3f30b4d855a26d550ddf726116c65846 (diff)
Add option to toggle date/time in log messages
-rw-r--r--cli/cli.go4
-rw-r--r--config/options.go9
-rw-r--r--config/parser.go2
-rw-r--r--logger/logger.go16
-rw-r--r--miniflux.119
5 files changed, 49 insertions, 1 deletions
diff --git a/cli/cli.go b/cli/cli.go
index eba1ee3..f130d9a 100644
--- a/cli/cli.go
+++ b/cli/cli.go
@@ -78,6 +78,10 @@ func Parse() {
return
}
+ if config.Opts.LogDateTime() {
+ logger.EnableDateTime()
+ }
+
if flagDebugMode || config.Opts.HasDebugMode() {
logger.EnableDebug()
}
diff --git a/config/options.go b/config/options.go
index 06d3edd..e23a4ae 100644
--- a/config/options.go
+++ b/config/options.go
@@ -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))
diff --git a/config/parser.go b/config/parser.go
index 6de4550..7e70db5 100644
--- a/config/parser.go
+++ b/config/parser.go
@@ -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":
diff --git a/logger/logger.go b/logger/logger.go
index a430c0d..f329b2c 100644
--- a/logger/logger.go
+++ b/logger/logger.go
@@ -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...)
}
diff --git a/miniflux.1 b/miniflux.1
index d9e7616..19ec39f 100644
--- a/miniflux.1
+++ b/miniflux.1
@@ -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