Skip to content

Commit 0bfceab

Browse files
authored
Set loglevel via ui: code review feedback
* Reduce nesting in VUE * Check value in backend before writing * Set WARN as default log level * VUE exception handling with logging
1 parent 893dee3 commit 0bfceab

File tree

7 files changed

+28
-21
lines changed

7 files changed

+28
-21
lines changed

css/logreader-main.css

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/logreader-main.mjs

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

js/logreader-main.mjs.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/Controller/SettingsController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ public function updateAppConfig(string $settingsKey, $settingsValue): JSONRespon
9393
}
9494

9595
if ($settingsKey === Constants::CONFIG_KEY_LOGLEVEL) {
96+
// Validate loglevel value
97+
if (!is_int($settingsValue) || $settingsValue < 0 || $settingsValue > 4) {
98+
$this->logger->debug('Cannot set {settingsValue} as loglevel', ['settingsValue' => $settingsValue ]);
99+
return new JSONResponse([], Http::STATUS_BAD_REQUEST);
100+
}
96101
// Set backend loglevel directly via system value
97102
$this->config->setSystemValue('loglevel', $settingsValue);
98103
} else {

lib/Service/SettingsService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public function getLiveLog(): bool {
6565
public function getAppSettings(): array {
6666
return [
6767
Constants::CONFIG_KEY_SHOWNLEVELS => $this->getShownLevels(),
68-
Constants::CONFIG_KEY_LOGLEVEL => $this->config->getSystemValueInt('loglevel', 0),
68+
Constants::CONFIG_KEY_LOGLEVEL => $this->config->getSystemValueInt('loglevel', 2),
6969
Constants::CONFIG_KEY_DATETIMEFORMAT => $this->getDateTimeFormat(),
7070
Constants::CONFIG_KEY_RELATIVEDATES => $this->getRelativeDates(),
7171
Constants::CONFIG_KEY_LIVELOG => $this->getLiveLog(),

src/components/settings/SettingsSetLogLevel.vue

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
<template>
2-
<div>
3-
<fieldset>
4-
<legend>{{ t('logreader', 'Set backend loglevel') }}</legend>
5-
<NcCheckboxRadioSwitch v-for="levelName, levelId in LOGGING_LEVEL_NAMES"
6-
:key="levelId"
7-
:checked="logLevel"
8-
:value="`${levelId}`"
9-
type="radio"
10-
name="loglevel"
11-
@update:checked="setLogLevel">
12-
{{ levelName }}
13-
</NcCheckboxRadioSwitch>
14-
</fieldset>
15-
</div>
2+
<fieldset>
3+
<legend>{{ t('logreader', 'Set backend loglevel') }}</legend>
4+
<NcCheckboxRadioSwitch v-for="levelName, levelId in LOGGING_LEVEL_NAMES"
5+
:key="levelId"
6+
:checked="logLevel"
7+
:value="`${levelId}`"
8+
type="radio"
9+
name="loglevel"
10+
@update:checked="setLogLevel">
11+
{{ levelName }}
12+
</NcCheckboxRadioSwitch>
13+
</fieldset>
1614
</template>
1715

1816
<script setup lang="ts">
@@ -22,6 +20,7 @@ import { computed } from 'vue'
2220
import { showError } from '@nextcloud/dialogs'
2321
import { translate as t } from '@nextcloud/l10n'
2422
import { useSettingsStore } from '../../store/settings'
23+
import { logger } from '../../utils/logger'
2524
import { LOGGING_LEVEL_NAMES } from '../../constants'
2625
2726
import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
@@ -36,7 +35,10 @@ const logLevel = computed(() => `${settingsStore.logLevel}`)
3635
const setLogLevel = (level: string) => {
3736
const numericLevel = parseInt(level) as IAppSettings['logLevel']
3837
settingsStore.setSetting('logLevel', numericLevel)
39-
.catch(() => showError(t('logreader', 'Could not set logging level')))
38+
.catch(e => {
39+
showError(t('logreader', 'Could not set logging level'))
40+
logger.error(e as Error)
41+
})
4042
}
4143
</script>
4244

src/store/settings.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const useSettingsStore = defineStore('logreader-settings', () => {
2424
/**
2525
* Saved setting loaded from server
2626
*/
27-
const _loadedSettings = loadState<SettingsState>('logreader', 'settings', { enabled: false, liveLog: false, dateTimeFormat: 'raw', shownLevels: [], logLevel: 0 })
27+
const _loadedSettings = loadState<SettingsState>('logreader', 'settings', { enabled: false, liveLog: false, dateTimeFormat: 'raw', shownLevels: [], logLevel: 2 })
2828

2929
/**
3030
* Is file logging enabled on server

0 commit comments

Comments
 (0)