mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-11-14 07:45:39 +01:00
add configured loggin and production check
This commit is contained in:
@@ -4,6 +4,7 @@ import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { PicsurConfigModule } from './config/config.module';
|
||||
import { ServeStaticConfigService } from './config/servestatic.config.service';
|
||||
import { TypeOrmConfigService } from './config/typeorm.config.service';
|
||||
import { PicsurLoggerModule } from './logger/logger.module';
|
||||
import { DemoManagerModule } from './managers/demo/demomanager.module';
|
||||
import { AuthModule } from './routes/api/auth/auth.module';
|
||||
import { PrefModule } from './routes/api/pref/pref.module';
|
||||
@@ -24,6 +25,7 @@ import { ImageModule } from './routes/image/imageroute.module';
|
||||
ImageModule,
|
||||
DemoManagerModule,
|
||||
PrefModule,
|
||||
PicsurLoggerModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
||||
@@ -21,17 +21,28 @@ export class HostConfigService {
|
||||
}
|
||||
|
||||
public isDemo() {
|
||||
const enabled = this.configService.get<boolean>(`${EnvPrefix}_DEMO`, false);
|
||||
const enabled = this.configService.get<boolean>(`${EnvPrefix}DEMO`, false);
|
||||
this.logger.debug('Demo enabled: ' + enabled);
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public getDemoInterval() {
|
||||
const interval = this.configService.get<number>(
|
||||
`${EnvPrefix}_DEMO_INTERVAL`,
|
||||
`${EnvPrefix}DEMO_INTERVAL`,
|
||||
1000 * 60 * 5,
|
||||
);
|
||||
this.logger.debug('Demo interval: ' + interval);
|
||||
return interval;
|
||||
}
|
||||
|
||||
public isProduction() {
|
||||
const enabled = this.configService.get<boolean>(
|
||||
`${EnvPrefix}PRODUCTION`,
|
||||
false,
|
||||
);
|
||||
if (enabled) {
|
||||
this.logger.log('Running in production mode');
|
||||
}
|
||||
return enabled;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,18 +12,18 @@ export class TypeOrmConfigService implements TypeOrmOptionsFactory {
|
||||
|
||||
public getTypeOrmServerOptions() {
|
||||
const varOptions = {
|
||||
host: this.configService.get<string>(`${EnvPrefix}_DB_HOST`, 'localhost'),
|
||||
port: this.configService.get<number>(`${EnvPrefix}_DB_PORT`, 5432),
|
||||
host: this.configService.get<string>(`${EnvPrefix}DB_HOST`, 'localhost'),
|
||||
port: this.configService.get<number>(`${EnvPrefix}DB_PORT`, 5432),
|
||||
username: this.configService.get<string>(
|
||||
`${EnvPrefix}_DB_USERNAME`,
|
||||
`${EnvPrefix}DB_USERNAME`,
|
||||
DefaultName,
|
||||
),
|
||||
password: this.configService.get<string>(
|
||||
`${EnvPrefix}_DB_PASSWORD`,
|
||||
`${EnvPrefix}DB_PASSWORD`,
|
||||
DefaultName,
|
||||
),
|
||||
database: this.configService.get<string>(
|
||||
`${EnvPrefix}_DB_DATABASE`,
|
||||
`${EnvPrefix}DB_DATABASE`,
|
||||
DefaultName,
|
||||
),
|
||||
};
|
||||
|
||||
10
backend/src/logger/logger.module.ts
Normal file
10
backend/src/logger/logger.module.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PicsurConfigModule } from '../config/config.module';
|
||||
import { PicsurLoggerService } from './logger.service';
|
||||
|
||||
@Module({
|
||||
imports: [PicsurConfigModule],
|
||||
providers: [PicsurLoggerService],
|
||||
exports: [PicsurLoggerService],
|
||||
})
|
||||
export class PicsurLoggerModule {}
|
||||
13
backend/src/logger/logger.service.ts
Normal file
13
backend/src/logger/logger.service.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';
|
||||
import { HostConfigService } from '../config/host.config.service';
|
||||
|
||||
@Injectable({ scope: Scope.DEFAULT })
|
||||
export class PicsurLoggerService extends ConsoleLogger {
|
||||
constructor(private hostService: HostConfigService) {
|
||||
super();
|
||||
|
||||
if (hostService.isProduction()) {
|
||||
super.setLogLevels(['error', 'warn', 'log']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import { AppModule } from './app.module';
|
||||
import { HostConfigService } from './config/host.config.service';
|
||||
import { MainExceptionFilter } from './layers/httpexception/httpexception.filter';
|
||||
import { SuccessInterceptor } from './layers/success/success.interceptor';
|
||||
|
||||
import { PicsurLoggerService } from './logger/logger.service';
|
||||
|
||||
async function bootstrap() {
|
||||
const fastifyAdapter = new FastifyAdapter();
|
||||
@@ -20,6 +20,9 @@ async function bootstrap() {
|
||||
const app = await NestFactory.create<NestFastifyApplication>(
|
||||
AppModule,
|
||||
fastifyAdapter,
|
||||
{
|
||||
bufferLogs: true
|
||||
}
|
||||
);
|
||||
app.useGlobalFilters(new MainExceptionFilter());
|
||||
app.useGlobalInterceptors(new SuccessInterceptor());
|
||||
@@ -30,6 +33,8 @@ async function bootstrap() {
|
||||
}),
|
||||
);
|
||||
|
||||
app.useLogger(app.get(PicsurLoggerService));
|
||||
|
||||
const hostConfigService = app.get(HostConfigService);
|
||||
await app.listen(hostConfigService.getPort(), hostConfigService.getHost());
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ FROM node:16-alpine
|
||||
# Sorry for the humongous docker container this generates
|
||||
# Maybe I'll trim it down some day
|
||||
|
||||
ENV PICSUR_PRODUCTION=true
|
||||
|
||||
ADD . /picsur
|
||||
WORKDIR /picsur
|
||||
|
||||
|
||||
Reference in New Issue
Block a user