improve logging

This commit is contained in:
Abhinav 2023-01-30 19:20:12 +05:30
parent 3ae79e57c8
commit 6969df8b39
2 changed files with 20 additions and 13 deletions

View file

@ -1,6 +1,9 @@
import { FILE_TYPE } from 'constants/file'; import { FILE_TYPE } from 'constants/file';
import { ElectronFile, FileTypeInfo } from 'types/upload'; import { ElectronFile, FileTypeInfo } from 'types/upload';
import { FILE_TYPE_LIB_MISSED_FORMATS } from 'constants/upload'; import {
FILE_TYPE_LIB_MISSED_FORMATS,
KNOWN_NON_MEDIA_FORMATS,
} from 'constants/upload';
import { CustomError } from 'utils/error'; import { CustomError } from 'utils/error';
import { getFileExtension } from 'utils/file'; import { getFileExtension } from 'utils/file';
import { logError } from 'utils/sentry'; import { logError } from 'utils/sentry';
@ -27,7 +30,7 @@ export async function getFileType(
const mimTypeParts: string[] = typeResult.mime?.split('/'); const mimTypeParts: string[] = typeResult.mime?.split('/');
if (mimTypeParts?.length !== 2) { if (mimTypeParts?.length !== 2) {
throw Error(CustomError.TYPE_DETECTION_FAILED); throw Error(CustomError.INVALID_MIME_TYPE);
} }
switch (mimTypeParts[0]) { switch (mimTypeParts[0]) {
case TYPE_IMAGE: case TYPE_IMAGE:
@ -52,9 +55,11 @@ export async function getFileType(
if (formatMissedByTypeDetection) { if (formatMissedByTypeDetection) {
return formatMissedByTypeDetection; return formatMissedByTypeDetection;
} }
logError(e, CustomError.TYPE_DETECTION_FAILED, { if (!KNOWN_NON_MEDIA_FORMATS.includes(fileFormat)) {
fileFormat, logError(e, 'type detection failed', {
}); fileFormat,
});
}
return { return {
fileType: FILE_TYPE.OTHERS, fileType: FILE_TYPE.OTHERS,
exactType: fileFormat, exactType: fileFormat,
@ -81,15 +86,17 @@ async function getFileTypeFromBuffer(buffer: Uint8Array) {
try { try {
const result = await FileType.fromBuffer(buffer); const result = await FileType.fromBuffer(buffer);
if (!result.mime) { if (!result.mime) {
logError( let logableInfo = '';
Error('mimetype missing from file type result'), try {
CustomError.TYPE_DETECTION_FAILED, logableInfo = JSON.stringify(result);
{ result } } catch (e) {
); logableInfo = 'failed to stringify result';
throw Error(CustomError.TYPE_DETECTION_FAILED); }
throw Error('mimetype missing from file type result' + logableInfo);
} }
return result; return result;
} catch (e) { } catch (e) {
throw Error(CustomError.TYPE_DETECTION_FAILED); logError(e, 'getFileTypeFromBuffer failed');
throw e;
} }
} }

View file

@ -25,7 +25,7 @@ export enum CustomError {
SUBSCRIPTION_EXPIRED = 'subscription expired', SUBSCRIPTION_EXPIRED = 'subscription expired',
STORAGE_QUOTA_EXCEEDED = 'storage quota exceeded', STORAGE_QUOTA_EXCEEDED = 'storage quota exceeded',
SESSION_EXPIRED = 'session expired', SESSION_EXPIRED = 'session expired',
TYPE_DETECTION_FAILED = 'type detection failed', INVALID_MIME_TYPE = 'invalid mime type',
SIGNUP_FAILED = 'signup failed', SIGNUP_FAILED = 'signup failed',
FAV_COLLECTION_MISSING = 'favorite collection missing', FAV_COLLECTION_MISSING = 'favorite collection missing',
INVALID_COLLECTION_OPERATION = 'invalid collection operation', INVALID_COLLECTION_OPERATION = 'invalid collection operation',