refactor: logging (#1318)

This commit is contained in:
Jason Rasmussen 2023-01-13 09:23:12 -05:00 committed by GitHub
parent 92ca447f33
commit ba04b753de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 19 deletions

View File

@ -10,11 +10,14 @@ import { SERVER_VERSION } from './constants/server_version.constant';
import { RedisIoAdapter } from './middlewares/redis-io.adapter.middleware';
import { json } from 'body-parser';
import { patchOpenAPI } from './utils/patch-open-api.util';
import { getLogLevels } from '@app/common';
const logger = new Logger('ImmichServer');
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
const app = await NestFactory.create<NestExpressApplication>(AppModule, {
logger: getLogLevels(),
});
app.set('trust proxy');
app.set('etag', 'strong');

View File

@ -1,13 +1,16 @@
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { SERVER_VERSION } from 'apps/immich/src/constants/server_version.constant';
import { getLogLevels } from '@app/common';
import { RedisIoAdapter } from '../../immich/src/middlewares/redis-io.adapter.middleware';
import { MicroservicesModule } from './microservices.module';
const logger = new Logger('ImmichMicroservice');
async function bootstrap() {
const app = await NestFactory.create(MicroservicesModule);
const app = await NestFactory.create(MicroservicesModule, {
logger: getLogLevels(),
});
const redisIoAdapter = new RedisIoAdapter(app);
await redisIoAdapter.connectToRedis();

View File

@ -1,4 +1,3 @@
import { ImmichLogLevel } from '@app/common/constants/log-level.constant';
import { AssetEntity, ExifEntity } from '@app/infra';
import {
IExifExtractionProcessor,
@ -76,8 +75,8 @@ export type GeoData = {
@Processor(QueueNameEnum.METADATA_EXTRACTION)
export class MetadataExtractionProcessor {
private logger = new Logger(MetadataExtractionProcessor.name);
private isGeocodeInitialized = false;
private logLevel: ImmichLogLevel;
constructor(
@InjectRepository(AssetEntity)
@ -86,10 +85,10 @@ export class MetadataExtractionProcessor {
@InjectRepository(ExifEntity)
private exifRepository: Repository<ExifEntity>,
private configService: ConfigService,
configService: ConfigService,
) {
if (!configService.get('DISABLE_REVERSE_GEOCODING')) {
Logger.log('Initialising Reverse Geocoding');
this.logger.log('Initializing Reverse Geocoding');
geocoderInit({
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
@ -108,8 +107,6 @@ export class MetadataExtractionProcessor {
Logger.log('Reverse Geocoding Initialised');
});
}
this.logLevel = this.configService.get('LOG_LEVEL') || ImmichLogLevel.SIMPLE;
}
private async reverseGeocodeExif(
@ -260,12 +257,8 @@ export class MetadataExtractionProcessor {
}
await this.exifRepository.save(newExif);
} catch (e) {
Logger.error(`Error extracting EXIF ${String(e)}`, 'extractExif');
if (this.logLevel === ImmichLogLevel.VERBOSE) {
console.trace('Error extracting EXIF', e);
}
} catch (error: any) {
this.logger.error(`Error extracting EXIF ${error}`, error?.stack);
}
}

View File

@ -27,6 +27,6 @@ export const immichAppConfig: ConfigModuleOptions = {
JWT_SECRET: Joi.string().required().custom(jwtSecretValidator),
DISABLE_REVERSE_GEOCODING: Joi.boolean().optional().valid(true, false).default(false),
REVERSE_GEOCODING_PRECISION: Joi.number().optional().valid(0, 1, 2, 3).default(3),
LOG_LEVEL: Joi.string().optional().valid('simple', 'verbose').default('simple'),
LOG_LEVEL: Joi.string().optional().valid('simple', 'verbose', 'debug', 'log', 'warn', 'error').default('log'),
}),
};

View File

@ -1,4 +0,0 @@
export enum ImmichLogLevel {
SIMPLE = 'simple',
VERBOSE = 'verbose',
}

View File

@ -1,3 +1,15 @@
import { LogLevel } from '@nestjs/common';
export * from './time-utils';
export * from './asset-utils';
export * from './user-utils';
export function getLogLevels() {
const LOG_LEVELS: LogLevel[] = ['verbose', 'debug', 'log', 'warn', 'error'];
let logLevel = process.env.LOG_LEVEL || 'log';
if (logLevel === 'simple') {
logLevel = 'log';
}
const logLevelIndex = LOG_LEVELS.indexOf(logLevel as LogLevel);
return logLevelIndex === -1 ? [] : LOG_LEVELS.slice(logLevelIndex);
}