@@ -20,7 +20,6 @@ export const LogLevel: Record<LevelWithSilent, number> = {
2020} as const ;
2121
2222export class LoggerFactory implements Closeable {
23- private static readonly LogsDirectory = pathToArtifact ( 'logs' ) ;
2423 private static readonly MaxFileSize = 50 * 1024 * 1024 ; // 50MB
2524
2625 private static readonly _instance : LoggerFactory = new LoggerFactory ( ) ;
@@ -30,7 +29,10 @@ export class LoggerFactory implements Closeable {
3029 private readonly loggers = new Map < string , Logger > ( ) ;
3130 private readonly interval : NodeJS . Timeout ;
3231
33- private constructor ( level ?: LevelWithSilent ) {
32+ private constructor (
33+ private readonly logsDirectory : string = pathToArtifact ( 'logs' ) ,
34+ level ?: LevelWithSilent ,
35+ ) {
3436 this . logLevel = level ?? TelemetrySettings . logLevel ;
3537
3638 this . baseLogger = pino ( {
@@ -51,7 +53,7 @@ export class LoggerFactory implements Closeable {
5153 target : 'pino/file' ,
5254 options : {
5355 destination : join (
54- LoggerFactory . LogsDirectory ,
56+ logsDirectory ,
5557 `${ ExtensionId } -${ DateTime . utc ( ) . toFormat ( 'yyyy-MM-dd' ) } .log` ,
5658 ) ,
5759 mkdir : true ,
@@ -72,13 +74,13 @@ export class LoggerFactory implements Closeable {
7274
7375 private async cleanOldLogs ( ) {
7476 try {
75- const files = await readdir ( LoggerFactory . LogsDirectory ) ;
77+ const files = await readdir ( this . logsDirectory ) ;
7678 const oneWeekAgo = DateTime . utc ( ) . minus ( { weeks : 1 } ) ;
7779
7880 for ( const file of files ) {
7981 if ( ! file . endsWith ( '.log' ) ) continue ;
8082
81- const filePath = join ( LoggerFactory . LogsDirectory , file ) ;
83+ const filePath = join ( this . logsDirectory , file ) ;
8284 const stats = await stat ( filePath ) ;
8385
8486 if ( DateTime . fromJSDate ( stats . mtime ) < oneWeekAgo ) {
@@ -94,12 +96,12 @@ export class LoggerFactory implements Closeable {
9496
9597 private async trimLogs ( ) {
9698 try {
97- const files = await readdir ( LoggerFactory . LogsDirectory ) ;
99+ const files = await readdir ( this . logsDirectory ) ;
98100
99101 for ( const file of files ) {
100102 if ( ! file . endsWith ( '.log' ) ) continue ;
101103
102- const filePath = join ( LoggerFactory . LogsDirectory , file ) ;
104+ const filePath = join ( this . logsDirectory , file ) ;
103105 const stats = await stat ( filePath ) ;
104106
105107 if ( stats . size > LoggerFactory . MaxFileSize ) {
0 commit comments