diff --git a/core/src/OC/capabilities.js b/core/src/OC/capabilities.js index 32486dfbd3c6a..853fd7cef26f4 100644 --- a/core/src/OC/capabilities.js +++ b/core/src/OC/capabilities.js @@ -4,7 +4,7 @@ */ import { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' /** * Returns the capabilities diff --git a/core/src/OC/dialogs.js b/core/src/OC/dialogs.js index 49522bf37266d..d9f2a3040ab87 100644 --- a/core/src/OC/dialogs.js +++ b/core/src/OC/dialogs.js @@ -11,7 +11,7 @@ import { t } from '@nextcloud/l10n' import { spawnDialog } from '@nextcloud/vue/functions/dialog' import { basename } from 'path' import { defineAsyncComponent } from 'vue' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' /** * this class to ease the usage of dialogs diff --git a/core/src/OC/index.js b/core/src/OC/index.js index 364c778d0d8b9..9534845d9dcd5 100644 --- a/core/src/OC/index.js +++ b/core/src/OC/index.js @@ -25,7 +25,7 @@ import { imagePath, linkTo, } from '@nextcloud/router' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' import { isUserAdmin } from './admin.js' import { appConfig } from './appconfig.js' import appswebroots from './appswebroots.js' diff --git a/core/src/OC/util.js b/core/src/OC/util.js index b057057993857..6880f8c09eb70 100644 --- a/core/src/OC/util.js +++ b/core/src/OC/util.js @@ -5,7 +5,7 @@ import { formatFileSize as humanFileSize } from '@nextcloud/files' import moment from 'moment' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' import OC from './index.js' import History from './util-history.js' diff --git a/core/src/ajax-cron.ts b/core/src/ajax-cron.ts index f11e440196aeb..408582ba54a68 100644 --- a/core/src/ajax-cron.ts +++ b/core/src/ajax-cron.ts @@ -4,7 +4,7 @@ */ import { getRootUrl } from '@nextcloud/router' -import logger from './logger.js' +import { logger } from './utils/logger.ts' window.addEventListener('DOMContentLoaded', async () => { // When the page is loaded send GET to the cron endpoint to trigger background jobs diff --git a/core/src/components/AppMenu.vue b/core/src/components/AppMenu.vue index 405169d588dcd..0ac13dd0232ff 100644 --- a/core/src/components/AppMenu.vue +++ b/core/src/components/AppMenu.vue @@ -103,7 +103,7 @@ import IconCog from 'vue-material-design-icons/Cog.vue' import IconDotsGrid from 'vue-material-design-icons/DotsGrid.vue' import AppMenuActions from './AppMenuActions.vue' import AppMenuItem from './AppMenuItem.vue' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' // Settings IDs that represent actions, not navigable pages. const SETTINGS_ACTION_IDS = new Set(['logout']) diff --git a/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue b/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue index 5eff8e19dbbd3..f178c39469667 100644 --- a/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue +++ b/core/src/components/PublicPageMenu/PublicPageMenuExternalDialog.vue @@ -38,7 +38,7 @@ import NcButton from '@nextcloud/vue/components/NcButton' import NcDialog from '@nextcloud/vue/components/NcDialog' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' import NcTextField from '@nextcloud/vue/components/NcTextField' -import logger from '../../logger.js' +import { logger } from '../../utils/logger.ts' defineProps<{ label: string diff --git a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue index a1a36a78e69e7..b8727ec71f4f6 100644 --- a/core/src/components/UnifiedSearch/UnifiedSearchModal.vue +++ b/core/src/components/UnifiedSearch/UnifiedSearchModal.vue @@ -285,9 +285,9 @@ import FilterChip from './SearchFilterChip.vue' import SearchResult from './SearchResult.vue' import SearchResultSkeleton from './SearchResultSkeleton.vue' import { useUnifiedSearch } from '../../composables/useUnifiedSearch.ts' -import { unifiedSearchLogger } from '../../logger.js' import { getContacts, getProviders } from '../../services/UnifiedSearchService.js' import { useSearchStore } from '../../store/unified-search-external-filters.js' +import { unifiedSearchLogger } from '../../utils/logger.ts' /** * Rows shown per category in the aggregate list. A view-only cap: the controller keeps diff --git a/core/src/components/login/PasswordLessLoginForm.vue b/core/src/components/login/PasswordLessLoginForm.vue index 97f4fcc25631a..4ba59b27085de 100644 --- a/core/src/components/login/PasswordLessLoginForm.vue +++ b/core/src/components/login/PasswordLessLoginForm.vue @@ -59,12 +59,12 @@ import NcTextField from '@nextcloud/vue/components/NcTextField' import InformationIcon from 'vue-material-design-icons/InformationOutline.vue' import LockOpenIcon from 'vue-material-design-icons/LockOpen.vue' import LoginButton from './LoginButton.vue' -import logger from '../../logger.js' import { finishAuthentication, NoValidCredentials, startAuthentication, } from '../../services/WebAuthnAuthenticationService.ts' +import { logger } from '../../utils/logger.ts' export default defineComponent({ name: 'PasswordLessLoginForm', diff --git a/core/src/components/login/ResetPassword.vue b/core/src/components/login/ResetPassword.vue index 3d756f86b45ac..e045cbea63565 100644 --- a/core/src/components/login/ResetPassword.vue +++ b/core/src/components/login/ResetPassword.vue @@ -51,8 +51,8 @@ import NcButton from '@nextcloud/vue/components/NcButton' import NcNoteCard from '@nextcloud/vue/components/NcNoteCard' import NcTextField from '@nextcloud/vue/components/NcTextField' import LoginButton from './LoginButton.vue' -import logger from '../../logger.js' import AuthMixin from '../../mixins/auth.js' +import { logger } from '../../utils/logger.ts' export default defineComponent({ name: 'ResetPassword', diff --git a/core/src/components/setup/RecommendedApps.vue b/core/src/components/setup/RecommendedApps.vue index 6e9cf8a22d944..6609a018448a0 100644 --- a/core/src/components/setup/RecommendedApps.vue +++ b/core/src/components/setup/RecommendedApps.vue @@ -67,7 +67,7 @@ import { t } from '@nextcloud/l10n' import { imagePath } from '@nextcloud/router' import NcButton from '@nextcloud/vue/components/NcButton' import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch' -import logger from '../../logger.js' +import { logger } from '../../utils/logger.ts' import * as appstoreApi from '~/apps/appstore/src/service/api.ts' import { canInstall } from '~/apps/appstore/src/utils/appStatus.js' diff --git a/core/src/logger.js b/core/src/logger.js deleted file mode 100644 index 0b53ecf88d5cd..0000000000000 --- a/core/src/logger.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -import { getCurrentUser } from '@nextcloud/auth' -import { getLoggerBuilder } from '@nextcloud/logger' - -/** - * - * @param user - */ -function getLogger(user) { - if (user === null) { - return getLoggerBuilder() - .setApp('core') - .build() - } - return getLoggerBuilder() - .setApp('core') - .setUid(user.uid) - .build() -} - -export default getLogger(getCurrentUser()) - -export const unifiedSearchLogger = getLoggerBuilder() - .setApp('unified-search') - .detectUser() - .build() diff --git a/core/src/maintenance.js b/core/src/maintenance.js index 585cc8cd83ee7..383d5b1b2d1c8 100644 --- a/core/src/maintenance.js +++ b/core/src/maintenance.js @@ -5,7 +5,7 @@ import Axios from '@nextcloud/axios' import { getRootUrl } from '@nextcloud/router' -import logger from './logger.js' +import { logger } from './utils/logger.ts' const url = getRootUrl() + '/status.php' diff --git a/core/src/recommendedapps.js b/core/src/recommendedapps.js index 693dbae8dd455..26ca6e8cb25e8 100644 --- a/core/src/recommendedapps.js +++ b/core/src/recommendedapps.js @@ -9,7 +9,7 @@ import { translate as t } from '@nextcloud/l10n' import { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation' import Vue from 'vue' import RecommendedApps from './components/setup/RecommendedApps.vue' -import logger from './logger.js' +import { logger } from './utils/logger.ts' addPasswordConfirmationInterceptors(axios) diff --git a/core/src/services/LegacyUnifiedSearchService.js b/core/src/services/LegacyUnifiedSearchService.js index a22cd1919e411..0c5b323771924 100644 --- a/core/src/services/LegacyUnifiedSearchService.js +++ b/core/src/services/LegacyUnifiedSearchService.js @@ -6,7 +6,7 @@ import axios from '@nextcloud/axios' import { loadState } from '@nextcloud/initial-state' import { generateOcsUrl } from '@nextcloud/router' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' export const defaultLimit = loadState('unified-search', 'limit-default') export const minSearchLength = loadState('unified-search', 'min-search-length', 1) diff --git a/core/src/services/UnifiedSearchService.js b/core/src/services/UnifiedSearchService.js index 65d4ce466f1c1..d74281eabfa60 100644 --- a/core/src/services/UnifiedSearchService.js +++ b/core/src/services/UnifiedSearchService.js @@ -6,7 +6,7 @@ import { getCurrentUser } from '@nextcloud/auth' import axios from '@nextcloud/axios' import { generateOcsUrl, generateUrl } from '@nextcloud/router' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' /** * Create a cancel token diff --git a/core/src/services/WebAuthnAuthenticationService.ts b/core/src/services/WebAuthnAuthenticationService.ts index 4f4455eb2c865..1493cc2a3d7be 100644 --- a/core/src/services/WebAuthnAuthenticationService.ts +++ b/core/src/services/WebAuthnAuthenticationService.ts @@ -8,7 +8,7 @@ import type { AuthenticationResponseJSON, PublicKeyCredentialRequestOptionsJSON import Axios from '@nextcloud/axios' import { generateUrl } from '@nextcloud/router' import { startAuthentication as startWebauthnAuthentication } from '@simplewebauthn/browser' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' export class NoValidCredentials extends Error {} diff --git a/core/src/session-heartbeat.ts b/core/src/session-heartbeat.ts index e101530816d06..07ac1bb1c5790 100644 --- a/core/src/session-heartbeat.ts +++ b/core/src/session-heartbeat.ts @@ -7,11 +7,11 @@ import { getCurrentUser } from '@nextcloud/auth' import { emit } from '@nextcloud/event-bus' import { loadState } from '@nextcloud/initial-state' import { generateUrl } from '@nextcloud/router' -import logger from './logger.js' import { fetchRequestToken, getRequestToken, } from './OC/requesttoken.ts' +import { logger } from './utils/logger.ts' interface OcJsConfig { auto_logout: boolean diff --git a/core/src/tests/components/UnifiedSearchModal.spec.ts b/core/src/tests/components/UnifiedSearchModal.spec.ts index 1c6597b671778..07762df187625 100644 --- a/core/src/tests/components/UnifiedSearchModal.spec.ts +++ b/core/src/tests/components/UnifiedSearchModal.spec.ts @@ -39,7 +39,7 @@ vi.mock('../../store/unified-search-external-filters.js', () => ({ // The real module builds a logger at import time (detectUser() and all), and the modal // logs on provider init. Stubbed to keep the unit off that dependency and out of the // test output; the vi.fn()s also leave log calls assertable if a test ever needs them. -vi.mock('../../logger.js', () => ({ +vi.mock('../../utils/logger.ts', () => ({ unifiedSearchLogger: { debug: vi.fn(), error: vi.fn() }, })) diff --git a/core/src/tests/utils/RedirectUnsupportedBrowsers.spec.ts b/core/src/tests/utils/RedirectUnsupportedBrowsers.spec.ts index 2c36f8a37da8b..3d8289d28e70f 100644 --- a/core/src/tests/utils/RedirectUnsupportedBrowsers.spec.ts +++ b/core/src/tests/utils/RedirectUnsupportedBrowsers.spec.ts @@ -12,8 +12,8 @@ vi.mock('@nextcloud/router', () => ({ })) // Mock the logger to suppress output -vi.mock('../../logger.js', () => ({ - default: { debug: vi.fn() }, +vi.mock('../../utils/logger.ts', () => ({ + logger: { debug: vi.fn() }, })) const browserStorage = vi.hoisted(() => ({ getItem: vi.fn(() => null) })) diff --git a/core/src/utils/ClipboardFallback.ts b/core/src/utils/ClipboardFallback.ts index f438ea1145aa7..f89f49ced9436 100644 --- a/core/src/utils/ClipboardFallback.ts +++ b/core/src/utils/ClipboardFallback.ts @@ -4,7 +4,7 @@ */ import { t } from '@nextcloud/l10n' -import logger from '../logger.js' +import { logger } from './logger.ts' /** * diff --git a/core/src/utils/RedirectUnsupportedBrowsers.js b/core/src/utils/RedirectUnsupportedBrowsers.js index 1e75b56a70b01..dbe48312c5548 100644 --- a/core/src/utils/RedirectUnsupportedBrowsers.js +++ b/core/src/utils/RedirectUnsupportedBrowsers.js @@ -4,9 +4,9 @@ */ import { generateUrl } from '@nextcloud/router' -import logger from '../logger.js' import { supportedBrowsersRegExp } from '../services/BrowsersListService.js' import browserStorage from '../services/BrowserStorageService.js' +import { logger } from './logger.ts' export const browserStorageKey = 'unsupported-browser-ignore' const redirectPath = generateUrl('/unsupported') diff --git a/core/src/utils/logger.ts b/core/src/utils/logger.ts new file mode 100644 index 0000000000000..f54096d579fdc --- /dev/null +++ b/core/src/utils/logger.ts @@ -0,0 +1,16 @@ +/*! + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { getLoggerBuilder } from '@nextcloud/logger' + +export const logger = getLoggerBuilder() + .setApp('core') + .detectUser() + .build() + +export const unifiedSearchLogger = getLoggerBuilder() + .setApp('unified-search') + .detectUser() + .build() diff --git a/core/src/utils/xhr-request.js b/core/src/utils/xhr-request.js index 55544670a032b..9b11ca2c2a19a 100644 --- a/core/src/utils/xhr-request.js +++ b/core/src/utils/xhr-request.js @@ -5,7 +5,7 @@ import { getCurrentUser } from '@nextcloud/auth' import { generateUrl, getRootUrl } from '@nextcloud/router' -import logger from '../logger.js' +import { logger } from './logger.ts' /** * diff --git a/core/src/views/AccountMenu.vue b/core/src/views/AccountMenu.vue index feacfb74ecab0..c2f899a5d705f 100644 --- a/core/src/views/AccountMenu.vue +++ b/core/src/views/AccountMenu.vue @@ -51,7 +51,7 @@ import NcAvatar from '@nextcloud/vue/components/NcAvatar' import NcHeaderMenu from '@nextcloud/vue/components/NcHeaderMenu' import AccountMenuEntry from '../components/AccountMenu/AccountMenuEntry.vue' import AccountMenuProfileEntry from '../components/AccountMenu/AccountMenuProfileEntry.vue' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' interface ISettingsNavigationEntry { /** diff --git a/core/src/views/ContactsMenu.vue b/core/src/views/ContactsMenu.vue index 8fc431f8ad648..2c510a1a05cfa 100644 --- a/core/src/views/ContactsMenu.vue +++ b/core/src/views/ContactsMenu.vue @@ -21,7 +21,7 @@ import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' import NcTextField from '@nextcloud/vue/components/NcTextField' import ContactMenuEntry from '../components/ContactsMenu/ContactMenuEntry.vue' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' const storage = getBuilder('core:contacts') .persist(true) diff --git a/core/src/views/LegacyUnifiedSearch.vue b/core/src/views/LegacyUnifiedSearch.vue index ccd937d3bda7f..699c31bfae9bb 100644 --- a/core/src/views/LegacyUnifiedSearch.vue +++ b/core/src/views/LegacyUnifiedSearch.vue @@ -124,8 +124,8 @@ import NcTextField from '@nextcloud/vue/components/NcTextField' import Magnify from 'vue-material-design-icons/Magnify.vue' import SearchResult from '../components/UnifiedSearch/LegacySearchResult.vue' import SearchResultPlaceholders from '../components/UnifiedSearch/SearchResultPlaceholders.vue' -import logger from '../logger.js' import { defaultLimit, enableLiveSearch, getTypes, minSearchLength, regexFilterIn, regexFilterNot, search } from '../services/LegacyUnifiedSearchService.js' +import { logger } from '../utils/logger.ts' const REQUEST_FAILED = 0 const REQUEST_OK = 1 diff --git a/core/src/views/UnifiedSearch.vue b/core/src/views/UnifiedSearch.vue index a90b7fc7e8a15..65a68ff24b228 100644 --- a/core/src/views/UnifiedSearch.vue +++ b/core/src/views/UnifiedSearch.vue @@ -39,7 +39,7 @@ import debounce from 'debounce' import { defineComponent } from 'vue' import UnifiedSearchInput from '../components/UnifiedSearch/UnifiedSearchInput.vue' import UnifiedSearchModal from '../components/UnifiedSearch/UnifiedSearchModal.vue' -import logger from '../logger.js' +import { logger } from '../utils/logger.ts' export default defineComponent({ name: 'UnifiedSearch', diff --git a/core/src/views/UnsupportedBrowser.vue b/core/src/views/UnsupportedBrowser.vue index c2df54b132d19..6bc1f7b976d5b 100644 --- a/core/src/views/UnsupportedBrowser.vue +++ b/core/src/views/UnsupportedBrowser.vue @@ -37,9 +37,9 @@ import { agents } from 'caniuse-lite/dist/unpacker/agents.js' import NcButton from '@nextcloud/vue/components/NcButton' import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import Web from 'vue-material-design-icons/Web.vue' -import logger from '../logger.js' import { supportedBrowsers } from '../services/BrowsersListService.js' import browserStorage from '../services/BrowserStorageService.js' +import { logger } from '../utils/logger.ts' import { browserStorageKey } from '../utils/RedirectUnsupportedBrowsers.js' logger.debug('Supported browsers', { supportedBrowsers })