Skip to content

Commit c7a9de0

Browse files
committed
fix!: use configured log level even if window._oc_debug is set
This allows using less verbose logging in the frontend while using debug features on the server like navigating the dav endpoints. It still works the same on NC24 and lower where log levels where not exposed on the frontend. Signed-off-by: Max <max@nextcloud.com>
1 parent 193721b commit c7a9de0

File tree

2 files changed

+4
-24
lines changed

2 files changed

+4
-24
lines changed

lib/LoggerBuilder.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,8 @@ export class LoggerBuilder {
7474
const onLoaded = () => {
7575
if (document.readyState === 'complete' || (document.readyState === 'interactive')) {
7676
// Up to, including, nextcloud 24 the loglevel was not exposed
77-
self.context.level = window._oc_config?.loglevel ?? LogLevel.Warn
78-
// Override loglevel if we are in debug mode
79-
if (window._oc_debug) {
80-
self.context.level = LogLevel.Debug
81-
}
77+
const fallback = window._oc_debug ? LogLevel.Debug : LogLevel.Warn
78+
self.context.level = window._oc_config?.loglevel ?? fallback
8279
document.removeEventListener('readystatechange', onLoaded)
8380
} else {
8481
document.addEventListener('readystatechange', onLoaded)

tests/LoggerBuilder.spec.ts

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ describe('detect logging level', () => {
124124
expect(logger.context.level).toBe(window._oc_config.loglevel)
125125
})
126126

127-
it('with `_oc_debug` override', async () => {
127+
it('does not override based on `_oc_debug` anymore', async () => {
128128
setReadyState('loading')
129129
const builder = getLoggerBuilder()
130130
builder.detectLogLevel()
@@ -139,26 +139,9 @@ describe('detect logging level', () => {
139139

140140
// Level should now be set to configured one
141141
expect('level' in builder.getContext()).toBe(true)
142-
expect(builder.getContext().level).toBe(LogLevel.Debug)
142+
expect(builder.getContext().level).toBe(window._oc_config.loglevel)
143143
})
144144

145-
it('with `_oc_debug` override on HTML interactive phase', async () => {
146-
setReadyState('loading')
147-
const builder = getLoggerBuilder()
148-
builder.detectLogLevel()
149-
150-
// Still loading so no level set
151-
expect('level' in builder.getContext()).toBe(false)
152-
153-
// Trigger document loaded
154-
window._oc_debug = true
155-
setReadyState('interactive')
156-
await new Promise(process.nextTick)
157-
158-
// Level should now be set to configured one
159-
expect('level' in builder.getContext()).toBe(true)
160-
expect(builder.getContext().level).toBe(LogLevel.Debug)
161-
})
162145
})
163146
})
164147

0 commit comments

Comments
 (0)