mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 21:17:58 +08:00
fix(log): ensure func record is correct (#3501)
The "func" field in log output is incorrect in some cases and showing internal logging methods instead of the actual calling function. This is happening because the caller information is being captured statically (5 call frames) which can be different for different call patterns. Changes: * Move the caller capture to the event creation * Use deterministic skip (3 frames) for event creation * Add test cases to verify that the caller is captured correctly Note: tests needed to written outside convey to avoid call insertion Signed-off-by: Ravi Chamarthy <ravi@chamarthy.dev>
This commit is contained in:
@@ -494,11 +494,13 @@ func TestConfigReloader(t *testing.T) {
|
||||
// wait for config reload
|
||||
time.Sleep(5 * time.Second)
|
||||
|
||||
// Wait for the async trivy download to fail and log the error
|
||||
found, err := test.ReadLogFileAndSearchString(logFile.Name(),
|
||||
"failed to download trivy-db to destination dir", 30*time.Second)
|
||||
So(err, ShouldBeNil)
|
||||
So(found, ShouldBeTrue)
|
||||
|
||||
// Now read the file once and check all the expected log content
|
||||
data, err := os.ReadFile(logFile.Name())
|
||||
So(err, ShouldBeNil)
|
||||
t.Logf("log file: %s", data)
|
||||
@@ -508,9 +510,12 @@ func TestConfigReloader(t *testing.T) {
|
||||
So(string(data), ShouldContainSubstring, "\"UpdateInterval\":18000000000000")
|
||||
So(string(data), ShouldContainSubstring, "\"Scrub\":null")
|
||||
So(string(data), ShouldContainSubstring, "\"DBRepository\":\"another/unreachable/trivy/url2\"")
|
||||
// matching log message when it errors out, test that indeed the download will try the second url
|
||||
|
||||
// Just verify the new URL appears in the logs to confirm config reload worked and ignore
|
||||
// the order of json message formatting that can change independent of this functional
|
||||
// test.
|
||||
found, err = test.ReadLogFileAndSearchString(logFile.Name(),
|
||||
"\"dbRepository\":\"index.docker.io/another/unreachable/trivy/url2:2\",\"goroutine", 1*time.Minute)
|
||||
"index.docker.io/another/unreachable/trivy/url2", 1*time.Minute)
|
||||
So(err, ShouldBeNil)
|
||||
So(found, ShouldBeTrue)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user