feat: make logging interval configurable (#511)

Reviewed-on: https://codeberg.org/Codeberg/pages-server/pulls/511
Reviewed-by: Andreas Shimokawa <ashimokawa@noreply.codeberg.org>
Co-authored-by: crapStone <me@crapstone.dev>
Co-committed-by: crapStone <me@crapstone.dev>
This commit is contained in:
crapStone
2025-09-10 14:22:10 +02:00
committed by Andreas Shimokawa
parent 30bc87089c
commit 2e271575c9
8 changed files with 31 additions and 8 deletions
+1
View File
@@ -16,6 +16,7 @@ type ServerConfig struct {
UseProxyProtocol bool `default:"false"`
LogMostActiveIps bool `default:"false"`
MostActiveIpCount uint `default:"10"`
LoggingInterval uint `default:"0"`
MainDomain string
RawDomain string
PagesBranches []string
+3
View File
@@ -76,6 +76,9 @@ func mergeServerConfig(ctx *cli.Context, config *ServerConfig) {
config.LogMostActiveIps = true
config.MostActiveIpCount = ctx.Uint("log-most-active-ips")
}
if ctx.IsSet("ip-logging-interval") {
config.LoggingInterval = ctx.Uint("ip-logging-interval")
}
if ctx.IsSet("pages-domain") {
config.MainDomain = ctx.String("pages-domain")
+8
View File
@@ -143,6 +143,7 @@ func TestMergeConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *testing.T
UseProxyProtocol: false,
LogMostActiveIps: false,
MostActiveIpCount: 10,
LoggingInterval: 0,
MainDomain: "original",
RawDomain: "original",
PagesBranches: []string{"original"},
@@ -185,6 +186,7 @@ func TestMergeConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *testing.T
HttpServerEnabled: true,
UseProxyProtocol: true,
LogMostActiveIps: true,
LoggingInterval: 300,
MostActiveIpCount: 42,
MainDomain: "changed",
RawDomain: "changed",
@@ -235,6 +237,7 @@ func TestMergeConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *testing.T
"--enable-http-server",
"--use-proxy-protocol",
"--log-most-active-ips", "42",
"--ip-logging-interval", "300",
// Forge
"--forge-root", "changed",
"--forge-api-token", "changed",
@@ -288,6 +291,7 @@ func TestMergeServerConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *tes
UseProxyProtocol: false,
LogMostActiveIps: false,
MostActiveIpCount: 10,
LoggingInterval: 0,
MainDomain: "original",
RawDomain: "original",
AllowedCorsDomains: []string{"original"},
@@ -304,6 +308,7 @@ func TestMergeServerConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *tes
UseProxyProtocol: true,
LogMostActiveIps: true,
MostActiveIpCount: 21,
LoggingInterval: 300,
MainDomain: "changed",
RawDomain: "changed",
AllowedCorsDomains: fixArrayFromCtx(ctx, "allowed-cors-domains", []string{"changed"}),
@@ -325,6 +330,7 @@ func TestMergeServerConfigShouldReplaceAllExistingValuesGivenAllArgsExist(t *tes
"--enable-http-server",
"--use-proxy-protocol",
"--log-most-active-ips", "21",
"--ip-logging-interval", "300",
},
)
}
@@ -350,6 +356,7 @@ func TestMergeServerConfigShouldReplaceOnlyOneValueExistingValueGivenOnlyOneArgE
sc.LogMostActiveIps = true
sc.MostActiveIpCount = 42
}},
{args: []string{"--ip-logging-interval", "300"}, callback: func(sc *ServerConfig) { sc.LoggingInterval = 300 }},
}
for _, pair := range testValuePairs {
@@ -369,6 +376,7 @@ func TestMergeServerConfigShouldReplaceOnlyOneValueExistingValueGivenOnlyOneArgE
UseProxyProtocol: false,
LogMostActiveIps: false,
MostActiveIpCount: 10,
LoggingInterval: 0,
}
expectedConfig := cfg