From 704da08fdc6bae6fdd6bf1b892ebe12afeef5eca Mon Sep 17 00:00:00 2001 From: zeripath Date: Tue, 2 Apr 2019 08:48:31 +0100 Subject: Better logging (#6038) (#6095) * Panic don't fatal on create new logger Fixes #5854 Signed-off-by: Andrew Thornton * partial broken * Update the logging infrastrcture Signed-off-by: Andrew Thornton * Reset the skip levels for Fatal and Error Signed-off-by: Andrew Thornton * broken ncsa * More log.Error fixes Signed-off-by: Andrew Thornton * Remove nal * set log-levels to lowercase * Make console_test test all levels * switch to lowercased levels * OK now working * Fix vetting issues * Fix lint * Fix tests * change default logging to match current gitea * Improve log testing Signed-off-by: Andrew Thornton * reset error skip levels to 0 * Update documentation and access logger configuration * Redirect the router log back to gitea if redirect macaron log but also allow setting the log level - i.e. TRACE * Fix broken level caching * Refactor the router log * Add Router logger * Add colorizing options * Adjust router colors * Only create logger if they will be used * update app.ini.sample * rename Attribute ColorAttribute * Change from white to green for function * Set fatal/error levels * Restore initial trace logger * Fix Trace arguments in modules/auth/auth.go * Properly handle XORMLogger * Improve admin/config page * fix fmt * Add auto-compression of old logs * Update error log levels * Remove the unnecessary skip argument from Error, Fatal and Critical * Add stacktrace support * Fix tests * Remove x/sync from vendors? * Add stderr option to console logger * Use filepath.ToSlash to protect against Windows in tests * Remove prefixed underscores from names in colors.go * Remove not implemented database logger This was removed from Gogs on 4 Mar 2016 but left in the configuration since then. * Ensure that log paths are relative to ROOT_PATH * use path.Join * rename jsonConfig to logConfig * Rename "config" to "jsonConfig" to make it clearer * Requested changes * Requested changes: XormLogger * Try to color the windows terminal If successful default to colorizing the console logs * fixup * Colorize initially too * update vendor * Colorize logs on default and remove if this is not a colorizing logger * Fix documentation * fix test * Use go-isatty to detect if on windows we are on msys or cygwin * Fix spelling mistake * Add missing vendors * More changes * Rationalise the ANSI writer protection * Adjust colors on advice from @0x5c * Make Flags a comma separated list * Move to use the windows constant for ENABLE_VIRTUAL_TERMINAL_PROCESSING * Ensure matching is done on the non-colored message - to simpify EXPRESSION --- custom/conf/app.ini.sample | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) (limited to 'custom') diff --git a/custom/conf/app.ini.sample b/custom/conf/app.ini.sample index 6e030221c4..3c025bc4e1 100644 --- a/custom/conf/app.ini.sample +++ b/custom/conf/app.ini.sample @@ -1,3 +1,4 @@ + ; This file lists the default values used by Gitea ; Copy required sections to your own app.ini (default is custom/conf/app.ini) ; and modify as needed. @@ -33,7 +34,7 @@ PREFERRED_LICENSES = Apache License 2.0,MIT License DISABLE_HTTP_GIT = false ; Value for Access-Control-Allow-Origin header, default is not to present ; WARNING: This maybe harmful to you website if you do not give it a right value. -ACCESS_CONTROL_ALLOW_ORIGIN = +ACCESS_CONTROL_ALLOW_ORIGIN = ; Force ssh:// clone url instead of scp-style uri when default SSH port is used USE_COMPAT_SSH_URI = false ; Close issues as long as a commit on any branch marks it as fixed @@ -260,7 +261,7 @@ ISSUE_INDEXER_TYPE = bleve ISSUE_INDEXER_PATH = indexers/issues.bleve ; Issue indexer queue, currently support: channel or levelqueue, default is levelqueue ISSUE_INDEXER_QUEUE_TYPE = levelqueue -; When ISSUE_INDEXER_QUEUE_TYPE is levelqueue, this will be the queue will be saved path, +; When ISSUE_INDEXER_QUEUE_TYPE is levelqueue, this will be the queue will be saved path, ; default is indexers/issues.queue ISSUE_INDEXER_QUEUE_DIR = indexers/issues.queue ; Batch queue number, default is 20 @@ -390,8 +391,8 @@ NO_REPLY_ADDRESS = noreply.example.org ; Show Registration button SHOW_REGISTRATION_BUTTON = true ; Default value for AutoWatchNewRepos -; When adding a repo to a team or creating a new repo all team members will watch the -; repo automatically if enabled +; When adding a repo to a team or creating a new repo all team members will watch the +; repo automatically if enabled AUTO_WATCH_NEW_REPOS = true [webhook] @@ -516,17 +517,37 @@ ROOT_PATH = MODE = console ; Buffer length of the channel, keep it as it is if you don't know what it is. BUFFER_LEN = 10000 -; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" -LEVEL = Trace REDIRECT_MACARON_LOG = false +MACARON = file +; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Info" +ROUTER_LOG_LEVEL = Info +ROUTER = console +ENABLE_ACCESS_LOG = false +ACCESS_LOG_TEMPLATE = {{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}" +ACCESS = file +; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" +LEVEL = Info +; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "None" +STACKTRACE_LEVEL = None + +; Generic log modes +[log.x] +FLAGS = stdflags +EXPRESSION = +PREFIX = +COLORIZE = false ; For "console" mode only [log.console] LEVEL = +STDERR = false ; For "file" mode only [log.file] LEVEL = +; Set the file_name for the logger. If this is a relative path this +; will be relative to ROOT_PATH +FILE_NAME = ; This enables automated log rotate(switch of following options), default is true LOG_ROTATE = true ; Max number of lines in a single file, default is 1000000 @@ -537,6 +558,10 @@ MAX_SIZE_SHIFT = 28 DAILY_ROTATE = true ; delete the log file after n days, default is 7 MAX_DAYS = 7 +; compress logs with gzip +COMPRESS = true +; compression level see godoc for compress/gzip +COMPRESSION_LEVEL = -1 ; For "conn" mode only [log.conn] @@ -564,14 +589,6 @@ PASSWD = ; Receivers, can be one or more, e.g. 1@example.com,2@example.com RECEIVERS = -; For "database" mode only -[log.database] -LEVEL = -; Either "mysql" or "postgres" -DRIVER = -; Based on xorm, e.g.: root:root@localhost/gitea?charset=utf8 -CONN = - [cron] ; Enable running cron tasks periodically. ENABLED = true -- cgit v1.2.3