@@ -863,8 +863,6 @@ ROOT_PATH = | |||||
MODE = console | MODE = console | ||||
; Buffer length of the channel, keep it as it is if you don't know what it is. | ; Buffer length of the channel, keep it as it is if you don't know what it is. | ||||
BUFFER_LEN = 10000 | BUFFER_LEN = 10000 | ||||
REDIRECT_MACARON_LOG = false | |||||
MACARON = file | |||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Info" | ; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Info" | ||||
ROUTER_LOG_LEVEL = Info | ROUTER_LOG_LEVEL = Info | ||||
ROUTER = console | ROUTER = console | ||||
@@ -47,8 +47,6 @@ PATH = /data/gitea/attachments | |||||
[log] | [log] | ||||
MODE = console | MODE = console | ||||
LEVEL = info | LEVEL = info | ||||
REDIRECT_MACARON_LOG = true | |||||
MACARON = console | |||||
ROUTER = console | ROUTER = console | ||||
ROOT_PATH = /data/gitea/log | ROOT_PATH = /data/gitea/log | ||||
@@ -611,7 +611,7 @@ Default templates for project boards: | |||||
- `STACKTRACE_LEVEL`: **None**: Default log level at which to log create stack traces. \[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\] | - `STACKTRACE_LEVEL`: **None**: Default log level at which to log create stack traces. \[Trace, Debug, Info, Warn, Error, Critical, Fatal, None\] | ||||
- `ROUTER_LOG_LEVEL`: **Info**: The log level that the router should log at. (If you are setting the access log, its recommended to place this at Debug.) | - `ROUTER_LOG_LEVEL`: **Info**: The log level that the router should log at. (If you are setting the access log, its recommended to place this at Debug.) | ||||
- `ROUTER`: **console**: The mode or name of the log the router should log to. (If you set this to `,` it will log to default gitea logger.) | - `ROUTER`: **console**: The mode or name of the log the router should log to. (If you set this to `,` it will log to default gitea logger.) | ||||
NB: You must `REDIRECT_MACARON_LOG` and have `DISABLE_ROUTER_LOG` set to `false` for this option to take effect. Configure each mode in per mode log subsections `\[log.modename.router\]`. | |||||
NB: You must have `DISABLE_ROUTER_LOG` set to `false` for this option to take effect. Configure each mode in per mode log subsections `\[log.modename.router\]`. | |||||
- `ENABLE_ACCESS_LOG`: **false**: Creates an access.log in NCSA common log format, or as per the following template | - `ENABLE_ACCESS_LOG`: **false**: Creates an access.log in NCSA common log format, or as per the following template | ||||
- `ACCESS`: **file**: Logging mode for the access logger, use a comma to separate values. Configure each mode in per mode log subsections `\[log.modename.access\]`. By default the file mode will log to `$ROOT_PATH/access.log`. (If you set this to `,` it will log to the default gitea logger.) | - `ACCESS`: **file**: Logging mode for the access logger, use a comma to separate values. Configure each mode in per mode log subsections `\[log.modename.access\]`. By default the file mode will log to `$ROOT_PATH/access.log`. (If you set this to `,` it will log to the default gitea logger.) | ||||
- `ACCESS_LOG_TEMPLATE`: **`{{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}"`**: Sets the template used to create the access log. | - `ACCESS_LOG_TEMPLATE`: **`{{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}"`**: Sets the template used to create the access log. | ||||
@@ -58,15 +58,6 @@ For documentation about each of the variables available, refer to the | |||||
- `HOMEDRIVE`: Main drive path used to access the home directory (C:) | - `HOMEDRIVE`: Main drive path used to access the home directory (C:) | ||||
- `HOMEPATH`: Home relative path in the given home drive path | - `HOMEPATH`: Home relative path in the given home drive path | ||||
## Macaron (framework used by Gitea) | |||||
- `HOST`: Host Macaron will listen on | |||||
- `PORT`: Port Macaron will listen on | |||||
- `MACARON_ENV`: global variable to provide special functionality for development environments | |||||
vs. production environments. If MACARON_ENV is set to "" or "development", then templates will | |||||
be recompiled on every request. For more performance, set the MACARON_ENV environment variable | |||||
to "production". | |||||
## Miscellaneous | ## Miscellaneous | ||||
- `SKIP_MINWINSVC`: If set to 1, do not run as a service on Windows. | - `SKIP_MINWINSVC`: If set to 1, do not run as a service on Windows. |
@@ -50,13 +50,6 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web | |||||
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C盘) | * `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C盘) | ||||
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径 | * `HOMEPATH`:在指定主驱动器下的 home 目录相对路径 | ||||
## Macaron(Gitea 使用的 web 框架) | |||||
* `HOST`:Macaron 监听的主机地址 | |||||
* `PORT`:Macaron 监听的端口地址 | |||||
* `MACARON_ENV`:为开发环境和生产环境提供特殊功能性配置的全局变量,当 MACARON_ENV 设置为 "" 或 "development" | |||||
时,每次请求都会重编译页面模板。为了提高性能表现,可将它设置为 "production"。 | |||||
## Miscellaneous | ## Miscellaneous | ||||
* `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。 | * `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。 |
@@ -27,7 +27,6 @@ The fundamental thing to be aware of in Gitea is that there are several | |||||
log groups: | log groups: | ||||
- The "Default" logger | - The "Default" logger | ||||
- The Macaron logger | |||||
- The Router logger | - The Router logger | ||||
- The Access logger | - The Access logger | ||||
- The XORM logger | - The XORM logger | ||||
@@ -74,8 +73,7 @@ You can disable Router log by setting `DISABLE_ROUTER_LOG`. | |||||
You can configure the outputs of this | You can configure the outputs of this | ||||
router log by setting the `ROUTER` value in the `[log]` section of the | router log by setting the `ROUTER` value in the `[log]` section of the | ||||
configuration. `ROUTER` will default to `console` if unset. The Gitea | configuration. `ROUTER` will default to `console` if unset. The Gitea | ||||
Router logs the same data as the Macaron log but has slightly different | |||||
coloring. It logs at the `Info` level by default, but this can be | |||||
Router logs at the `Info` level by default, but this can be | |||||
changed if desired by setting the `ROUTER_LOG_LEVEL` value. | changed if desired by setting the `ROUTER_LOG_LEVEL` value. | ||||
Please note, setting the `LEVEL` of this logger to a level above | Please note, setting the `LEVEL` of this logger to a level above | ||||
@@ -182,7 +180,7 @@ Certain configuration is common to all modes of log output: | |||||
- `STACKTRACE_LEVEL` is the lowest level that this output will print | - `STACKTRACE_LEVEL` is the lowest level that this output will print | ||||
a stacktrace. This value is inherited. | a stacktrace. This value is inherited. | ||||
- `MODE` is the mode of the log output. It will default to the sublogger | - `MODE` is the mode of the log output. It will default to the sublogger | ||||
name. Thus `[log.console.macaron]` will default to `MODE = console`. | |||||
name. Thus `[log.console.router]` will default to `MODE = console`. | |||||
- `COLORIZE` will default to `true` for `console` as | - `COLORIZE` will default to `true` for `console` as | ||||
described, otherwise it will default to `false`. | described, otherwise it will default to `false`. | ||||
@@ -280,8 +278,6 @@ LOG_SQL = false ; SQL logs are rarely helpful unless we specifically ask for the | |||||
[log] | [log] | ||||
MODE = console | MODE = console | ||||
LEVEL = debug ; please set the level to debug when we are debugging a problem | LEVEL = debug ; please set the level to debug when we are debugging a problem | ||||
REDIRECT_MACARON_LOG = true | |||||
MACARON = console | |||||
ROUTER = console | ROUTER = console | ||||
COLORIZE = false ; this can be true if you can strip out the ansi coloring | COLORIZE = false ; this can be true if you can strip out the ansi coloring | ||||
``` | ``` | ||||
@@ -314,7 +310,6 @@ ROOT_PATH = %(GITEA_WORK_DIR)/log | |||||
MODE = console | MODE = console | ||||
LEVEL = Info | LEVEL = Info | ||||
STACKTRACE_LEVEL = None | STACKTRACE_LEVEL = None | ||||
REDIRECT_MACARON_LOG = false | |||||
ENABLE_ACCESS_LOG = false | ENABLE_ACCESS_LOG = false | ||||
ENABLE_XORM_LOG = true | ENABLE_XORM_LOG = true | ||||
XORM = , | XORM = , | ||||
@@ -345,7 +340,7 @@ recommended that pausing only done for a very short period of time. | |||||
## Adding and removing logging whilst Gitea is running | ## Adding and removing logging whilst Gitea is running | ||||
It is possible to add and remove logging whilst Gitea is running using the `gitea manager logging add` and `remove` subcommands. | It is possible to add and remove logging whilst Gitea is running using the `gitea manager logging add` and `remove` subcommands. | ||||
This functionality can only adjust running log systems and cannot be used to start the access, macaron or router loggers if they | |||||
This functionality can only adjust running log systems and cannot be used to start the access or router loggers if they | |||||
were not already initialised. If you wish to start these systems you are advised to adjust the app.ini and (gracefully) restart | were not already initialised. If you wish to start these systems you are advised to adjust the app.ini and (gracefully) restart | ||||
the Gitea service. | the Gitea service. | ||||
@@ -78,9 +78,7 @@ PROVIDER_CONFIG = integrations/gitea-integration-mssql/data/sessions | |||||
[log] | [log] | ||||
MODE = test,file | MODE = test,file | ||||
ROOT_PATH = mssql-log | ROOT_PATH = mssql-log | ||||
REDIRECT_MACARON_LOG = true | |||||
ROUTER = , | ROUTER = , | ||||
MACARON = , | |||||
XORM = file | XORM = file | ||||
[log.test] | [log.test] | ||||
@@ -97,9 +97,7 @@ PROVIDER_CONFIG = integrations/gitea-integration-mysql/data/sessions | |||||
[log] | [log] | ||||
MODE = test,file | MODE = test,file | ||||
ROOT_PATH = mysql-log | ROOT_PATH = mysql-log | ||||
REDIRECT_MACARON_LOG = true | |||||
ROUTER = , | ROUTER = , | ||||
MACARON = , | |||||
XORM = file | XORM = file | ||||
[log.test] | [log.test] | ||||
@@ -70,9 +70,7 @@ PROVIDER_CONFIG = data/sessions-mysql8 | |||||
[log] | [log] | ||||
MODE = test,file | MODE = test,file | ||||
ROOT_PATH = mysql8-log | ROOT_PATH = mysql8-log | ||||
REDIRECT_MACARON_LOG = true | |||||
ROUTER = , | ROUTER = , | ||||
MACARON = , | |||||
XORM = file | XORM = file | ||||
[log.test] | [log.test] | ||||
@@ -235,7 +235,7 @@ func TestRefreshTokenInvalidation(t *testing.T) { | |||||
"redirect_uri": "a", | "redirect_uri": "a", | ||||
"refresh_token": parsed.RefreshToken, | "refresh_token": parsed.RefreshToken, | ||||
}) | }) | ||||
// tip: Why this changed, because macaron will set req.Body back when consume the req but chi will not. | |||||
bs, err := ioutil.ReadAll(refreshReq.Body) | bs, err := ioutil.ReadAll(refreshReq.Body) | ||||
assert.NoError(t, err) | assert.NoError(t, err) | ||||
@@ -79,9 +79,7 @@ PROVIDER_CONFIG = integrations/gitea-integration-pgsql/data/sessions | |||||
[log] | [log] | ||||
MODE = test,file | MODE = test,file | ||||
ROOT_PATH = pgsql-log | ROOT_PATH = pgsql-log | ||||
REDIRECT_MACARON_LOG = true | |||||
ROUTER = , | ROUTER = , | ||||
MACARON = , | |||||
XORM = file | XORM = file | ||||
[log.test] | [log.test] | ||||
@@ -75,9 +75,7 @@ PROVIDER_CONFIG = integrations/gitea-integration-sqlite/data/sessions | |||||
[log] | [log] | ||||
MODE = test,file | MODE = test,file | ||||
ROOT_PATH = sqlite-log | ROOT_PATH = sqlite-log | ||||
REDIRECT_MACARON_LOG = true | |||||
ROUTER = , | ROUTER = , | ||||
MACARON = , | |||||
XORM = file | XORM = file | ||||
[log.test] | [log.test] | ||||
@@ -23,7 +23,7 @@ import ( | |||||
"gitea.com/go-chi/session" | "gitea.com/go-chi/session" | ||||
) | ) | ||||
// APIContext is a specific macaron context for API service | |||||
// APIContext is a specific context for API service | |||||
type APIContext struct { | type APIContext struct { | ||||
*Context | *Context | ||||
Org *APIOrganization | Org *APIOrganization | ||||
@@ -217,7 +217,7 @@ func (ctx *APIContext) CheckForOTP() { | |||||
} | } | ||||
} | } | ||||
// APIContexter returns apicontext as macaron middleware | |||||
// APIContexter returns apicontext as middleware | |||||
func APIContexter() func(http.Handler) http.Handler { | func APIContexter() func(http.Handler) http.Handler { | ||||
var csrfOpts = getCsrfOpts() | var csrfOpts = getCsrfOpts() | ||||
@@ -170,7 +170,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { | |||||
} | } | ||||
} | } | ||||
// OrgAssignment returns a macaron middleware to handle organization assignment | |||||
// OrgAssignment returns a middleware to handle organization assignment | |||||
func OrgAssignment(args ...bool) func(ctx *Context) { | func OrgAssignment(args ...bool) func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
HandleOrgAssignment(ctx, args...) | HandleOrgAssignment(ctx, args...) | ||||
@@ -9,7 +9,7 @@ import ( | |||||
"code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
) | ) | ||||
// RequireRepoAdmin returns a macaron middleware for requiring repository admin permission | |||||
// RequireRepoAdmin returns a middleware for requiring repository admin permission | |||||
func RequireRepoAdmin() func(ctx *Context) { | func RequireRepoAdmin() func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
if !ctx.IsSigned || !ctx.Repo.IsAdmin() { | if !ctx.IsSigned || !ctx.Repo.IsAdmin() { | ||||
@@ -19,7 +19,7 @@ func RequireRepoAdmin() func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// RequireRepoWriter returns a macaron middleware for requiring repository write to the specify unitType | |||||
// RequireRepoWriter returns a middleware for requiring repository write to the specify unitType | |||||
func RequireRepoWriter(unitType models.UnitType) func(ctx *Context) { | func RequireRepoWriter(unitType models.UnitType) func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
if !ctx.Repo.CanWrite(unitType) { | if !ctx.Repo.CanWrite(unitType) { | ||||
@@ -29,7 +29,7 @@ func RequireRepoWriter(unitType models.UnitType) func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// RequireRepoWriterOr returns a macaron middleware for requiring repository write to one of the unit permission | |||||
// RequireRepoWriterOr returns a middleware for requiring repository write to one of the unit permission | |||||
func RequireRepoWriterOr(unitTypes ...models.UnitType) func(ctx *Context) { | func RequireRepoWriterOr(unitTypes ...models.UnitType) func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
for _, unitType := range unitTypes { | for _, unitType := range unitTypes { | ||||
@@ -41,7 +41,7 @@ func RequireRepoWriterOr(unitTypes ...models.UnitType) func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// RequireRepoReader returns a macaron middleware for requiring repository read to the specify unitType | |||||
// RequireRepoReader returns a middleware for requiring repository read to the specify unitType | |||||
func RequireRepoReader(unitType models.UnitType) func(ctx *Context) { | func RequireRepoReader(unitType models.UnitType) func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
if !ctx.Repo.CanRead(unitType) { | if !ctx.Repo.CanRead(unitType) { | ||||
@@ -67,7 +67,7 @@ func RequireRepoReader(unitType models.UnitType) func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// RequireRepoReaderOr returns a macaron middleware for requiring repository write to one of the unit permission | |||||
// RequireRepoReaderOr returns a middleware for requiring repository write to one of the unit permission | |||||
func RequireRepoReaderOr(unitTypes ...models.UnitType) func(ctx *Context) { | func RequireRepoReaderOr(unitTypes ...models.UnitType) func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
for _, unitType := range unitTypes { | for _, unitType := range unitTypes { | ||||
@@ -28,7 +28,7 @@ func GetPrivateContext(req *http.Request) *PrivateContext { | |||||
return req.Context().Value(privateContextKey).(*PrivateContext) | return req.Context().Value(privateContextKey).(*PrivateContext) | ||||
} | } | ||||
// PrivateContexter returns apicontext as macaron middleware | |||||
// PrivateContexter returns apicontext as middleware | |||||
func PrivateContexter() func(http.Handler) http.Handler { | func PrivateContexter() func(http.Handler) http.Handler { | ||||
return func(next http.Handler) http.Handler { | return func(next http.Handler) http.Handler { | ||||
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||
@@ -373,7 +373,7 @@ func repoAssignment(ctx *Context, repo *models.Repository) { | |||||
ctx.Data["IsEmptyRepo"] = ctx.Repo.Repository.IsEmpty | ctx.Data["IsEmptyRepo"] = ctx.Repo.Repository.IsEmpty | ||||
} | } | ||||
// RepoIDAssignment returns a macaron handler which assigns the repo to the context. | |||||
// RepoIDAssignment returns a handler which assigns the repo to the context. | |||||
func RepoIDAssignment() func(ctx *Context) { | func RepoIDAssignment() func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
repoID := ctx.ParamsInt64(":repoid") | repoID := ctx.ParamsInt64(":repoid") | ||||
@@ -393,7 +393,7 @@ func RepoIDAssignment() func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// RepoAssignment returns a macaron to handle repository assignment | |||||
// RepoAssignment returns a middleware to handle repository assignment | |||||
func RepoAssignment() func(http.Handler) http.Handler { | func RepoAssignment() func(http.Handler) http.Handler { | ||||
return func(next http.Handler) http.Handler { | return func(next http.Handler) http.Handler { | ||||
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { | ||||
@@ -849,7 +849,7 @@ func GitHookService() func(ctx *Context) { | |||||
} | } | ||||
} | } | ||||
// UnitTypes returns a macaron middleware to set unit types to context variables. | |||||
// UnitTypes returns a middleware to set unit types to context variables. | |||||
func UnitTypes() func(ctx *Context) { | func UnitTypes() func(ctx *Context) { | ||||
return func(ctx *Context) { | return func(ctx *Context) { | ||||
ctx.Data["UnitTypeCode"] = models.UnitTypeCode | ctx.Data["UnitTypeCode"] = models.UnitTypeCode | ||||
@@ -267,7 +267,7 @@ func NewLoggerAsWriter(level string, ourLoggers ...*MultiChannelledLogger) *Logg | |||||
return l | return l | ||||
} | } | ||||
// Write implements the io.Writer interface to allow spoofing of macaron | |||||
// Write implements the io.Writer interface to allow spoofing of chi | |||||
func (l *LoggerAsWriter) Write(p []byte) (int, error) { | func (l *LoggerAsWriter) Write(p []byte) (int, error) { | ||||
for _, logger := range l.ourLoggers { | for _, logger := range l.ourLoggers { | ||||
// Skip = 3 because this presumes that we have been called by log.Println() | // Skip = 3 because this presumes that we have been called by log.Println() | ||||
@@ -13,7 +13,7 @@ import ( | |||||
"time" | "time" | ||||
) | ) | ||||
// Static implements the macaron static handler for serving assets. | |||||
// Static implements the static handler for serving assets. | |||||
func Static(opts *Options) func(next http.Handler) http.Handler { | func Static(opts *Options) func(next http.Handler) http.Handler { | ||||
return opts.staticHandler(opts.Directory) | return opts.staticHandler(opts.Directory) | ||||
} | } | ||||
@@ -15,7 +15,7 @@ import ( | |||||
"code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
) | ) | ||||
// Options represents the available options to configure the macaron handler. | |||||
// Options represents the available options to configure the handler. | |||||
type Options struct { | type Options struct { | ||||
Directory string | Directory string | ||||
IndexFile string | IndexFile string | ||||
@@ -34,7 +34,7 @@ var KnownPublicEntries = []string{ | |||||
"favicon.ico", | "favicon.ico", | ||||
} | } | ||||
// Custom implements the macaron static handler for serving custom assets. | |||||
// Custom implements the static handler for serving custom assets. | |||||
func Custom(opts *Options) func(next http.Handler) http.Handler { | func Custom(opts *Options) func(next http.Handler) http.Handler { | ||||
return opts.staticHandler(path.Join(setting.CustomPath, "public")) | return opts.staticHandler(path.Join(setting.CustomPath, "public")) | ||||
} | } | ||||
@@ -20,7 +20,7 @@ import ( | |||||
"code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
) | ) | ||||
// Static implements the macaron static handler for serving assets. | |||||
// Static implements the static handler for serving assets. | |||||
func Static(opts *Options) func(next http.Handler) http.Handler { | func Static(opts *Options) func(next http.Handler) http.Handler { | ||||
opts.FileSystem = Assets | opts.FileSystem = Assets | ||||
// we don't need to pass the directory, because the directory var is only | // we don't need to pass the directory, because the directory var is only | ||||
@@ -273,7 +273,7 @@ func newRouterLogService() { | |||||
// Allow [log] DISABLE_ROUTER_LOG to override [server] DISABLE_ROUTER_LOG | // Allow [log] DISABLE_ROUTER_LOG to override [server] DISABLE_ROUTER_LOG | ||||
DisableRouterLog = Cfg.Section("log").Key("DISABLE_ROUTER_LOG").MustBool(DisableRouterLog) | DisableRouterLog = Cfg.Section("log").Key("DISABLE_ROUTER_LOG").MustBool(DisableRouterLog) | ||||
if !DisableRouterLog && RedirectMacaronLog { | |||||
if !DisableRouterLog { | |||||
options := newDefaultLogOptions() | options := newDefaultLogOptions() | ||||
options.filename = filepath.Join(LogRootPath, "router.log") | options.filename = filepath.Join(LogRootPath, "router.log") | ||||
options.flags = "date,time" // For the router we don't want any prefixed flags | options.flags = "date,time" // For the router we don't want any prefixed flags | ||||
@@ -288,7 +288,6 @@ var ( | |||||
LogLevel string | LogLevel string | ||||
StacktraceLogLevel string | StacktraceLogLevel string | ||||
LogRootPath string | LogRootPath string | ||||
RedirectMacaronLog bool | |||||
DisableRouterLog bool | DisableRouterLog bool | ||||
RouterLogLevel log.Level | RouterLogLevel log.Level | ||||
RouterLogMode string | RouterLogMode string | ||||
@@ -539,7 +538,6 @@ func NewContext() { | |||||
StacktraceLogLevel = getStacktraceLogLevel(Cfg.Section("log"), "STACKTRACE_LEVEL", "None") | StacktraceLogLevel = getStacktraceLogLevel(Cfg.Section("log"), "STACKTRACE_LEVEL", "None") | ||||
LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(AppWorkPath, "log")) | LogRootPath = Cfg.Section("log").Key("ROOT_PATH").MustString(path.Join(AppWorkPath, "log")) | ||||
forcePathSeparator(LogRootPath) | forcePathSeparator(LogRootPath) | ||||
RedirectMacaronLog = Cfg.Section("log").Key("REDIRECT_MACARON_LOG").MustBool(false) | |||||
RouterLogLevel = log.FromString(Cfg.Section("log").Key("ROUTER_LOG_LEVEL").MustString("Info")) | RouterLogLevel = log.FromString(Cfg.Section("log").Key("ROUTER_LOG_LEVEL").MustString("Info")) | ||||
sec := Cfg.Section("server") | sec := Cfg.Section("server") | ||||
@@ -49,7 +49,6 @@ func InitLocales() { | |||||
} | } | ||||
} | } | ||||
// These codes will be used once macaron removed | |||||
tags := make([]language.Tag, len(setting.Langs)) | tags := make([]language.Tag, len(setting.Langs)) | ||||
for i, lang := range setting.Langs { | for i, lang := range setting.Langs { | ||||
tags[i] = language.Raw.Make(lang) | tags[i] = language.Raw.Make(lang) | ||||
@@ -2402,7 +2402,6 @@ config.git_gc_timeout = GC Operation Timeout | |||||
config.log_config = Log Configuration | config.log_config = Log Configuration | ||||
config.log_mode = Log Mode | config.log_mode = Log Mode | ||||
config.macaron_log_mode = Macaron Log Mode | |||||
config.own_named_logger = Named Logger | config.own_named_logger = Named Logger | ||||
config.routes_to_default_logger = Routes To Default Logger | config.routes_to_default_logger = Routes To Default Logger | ||||
config.go_log = Uses Go Log (redirected to default) | config.go_log = Uses Go Log (redirected to default) | ||||
@@ -308,7 +308,6 @@ func Config(ctx *context.Context) { | |||||
ctx.Data["EnvVars"] = envVars | ctx.Data["EnvVars"] = envVars | ||||
ctx.Data["Loggers"] = setting.GetLogDescriptions() | ctx.Data["Loggers"] = setting.GetLogDescriptions() | ||||
ctx.Data["RedirectMacaronLog"] = setting.RedirectMacaronLog | |||||
ctx.Data["EnableAccessLog"] = setting.EnableAccessLog | ctx.Data["EnableAccessLog"] = setting.EnableAccessLog | ||||
ctx.Data["AccessLogTemplate"] = setting.AccessLogTemplate | ctx.Data["AccessLogTemplate"] = setting.AccessLogTemplate | ||||
ctx.Data["DisableRouterLog"] = setting.DisableRouterLog | ctx.Data["DisableRouterLog"] = setting.DisableRouterLog | ||||
@@ -371,8 +371,6 @@ func InstallPost(ctx *context.Context) { | |||||
cfg.Section("log").Key("MODE").SetValue("console") | cfg.Section("log").Key("MODE").SetValue("console") | ||||
cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel) | cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel) | ||||
cfg.Section("log").Key("ROOT_PATH").SetValue(form.LogRootPath) | cfg.Section("log").Key("ROOT_PATH").SetValue(form.LogRootPath) | ||||
cfg.Section("log").Key("REDIRECT_MACARON_LOG").SetValue("true") | |||||
cfg.Section("log").Key("MACARON").SetValue("console") | |||||
cfg.Section("log").Key("ROUTER").SetValue("console") | cfg.Section("log").Key("ROUTER").SetValue("console") | ||||
cfg.Section("security").Key("INSTALL_LOCK").SetValue("true") | cfg.Section("security").Key("INSTALL_LOCK").SetValue("true") | ||||
@@ -215,7 +215,7 @@ func WebRoutes() *web.Route { | |||||
return r | return r | ||||
} | } | ||||
// RegisterRoutes routes routes to Macaron | |||||
// RegisterRoutes register routes | |||||
func RegisterRoutes(m *web.Route) { | func RegisterRoutes(m *web.Route) { | ||||
reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true}) | reqSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: true}) | ||||
ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: setting.Service.RequireSignInView}) | ignSignIn := context.Toggle(&context.ToggleOptions{SignInRequired: setting.Service.RequireSignInView}) | ||||
@@ -344,20 +344,16 @@ | |||||
{{if .DisableRouterLog}} | {{if .DisableRouterLog}} | ||||
<dd>{{$.i18n.Tr "admin.config.disabled_logger"}}</dd> | <dd>{{$.i18n.Tr "admin.config.disabled_logger"}}</dd> | ||||
{{else}} | {{else}} | ||||
{{if .RedirectMacaronLog}} | |||||
{{if .Loggers.router.SubLogDescriptions}} | |||||
<dd>{{$.i18n.Tr "admin.config.own_named_logger"}}</dd> | |||||
{{range .Loggers.router.SubLogDescriptions}} | |||||
<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt> | |||||
<dd>{{.Name}} ({{.Provider}})</dd> | |||||
<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt> | |||||
<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd> | |||||
{{end}} | |||||
{{else}} | |||||
<dd>{{$.i18n.Tr "admin.config.routes_to_default_logger"}}</dd> | |||||
{{if .Loggers.router.SubLogDescriptions}} | |||||
<dd>{{$.i18n.Tr "admin.config.own_named_logger"}}</dd> | |||||
{{range .Loggers.router.SubLogDescriptions}} | |||||
<dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt> | |||||
<dd>{{.Name}} ({{.Provider}})</dd> | |||||
<dt>{{$.i18n.Tr "admin.config.log_config"}}</dt> | |||||
<dd><pre>{{.Config | JsonPrettyPrint}}</pre></dd> | |||||
{{end}} | {{end}} | ||||
{{else}} | {{else}} | ||||
<dd>{{$.i18n.Tr "admin.config.go_log"}}</dd> | |||||
<dd>{{$.i18n.Tr "admin.config.routes_to_default_logger"}}</dd> | |||||
{{end}} | {{end}} | ||||
{{end}} | {{end}} | ||||
<div class="ui divider"></div> | <div class="ui divider"></div> | ||||