@@ -2,7 +2,7 @@ import * as fs from "fs"
22import * as path from "path"
33import { createWriteStream , WriteStream } from "fs"
44
5- export type LogLevel = ' INFO' | ' WARN' | ' ERROR' | ' DEBUG'
5+ export type LogLevel = " INFO" | " WARN" | " ERROR" | " DEBUG"
66
77export interface LogMetadata {
88 [ key : string ] : any
@@ -18,7 +18,7 @@ export interface LogEntry {
1818
1919/**
2020 * FileLogger - Système de journalisation persistante pour diagnostic des crashes webview
21- *
21+ *
2222 * Fonctionnalités :
2323 * - Logging persistant survit aux crashes de webview
2424 * - Support des niveaux de log (INFO, WARN, ERROR, DEBUG)
@@ -35,13 +35,13 @@ export class FileLogger {
3535 private maxLogFileSize : number = 10 * 1024 * 1024 // 10MB par défaut
3636 private maxLogFiles : number = 5
3737
38- constructor ( baseDir : string , filename : string = ' roo-code-debug.log' ) {
38+ constructor ( baseDir : string , filename : string = " roo-code-debug.log" ) {
3939 // Créer le répertoire .logs dans le baseDir
40- const logsDir = path . join ( baseDir , ' .logs' )
40+ const logsDir = path . join ( baseDir , " .logs" )
4141 this . logFilePath = path . join ( logsDir , filename )
42-
42+
4343 // Initialisation asynchrone pour éviter de bloquer le constructeur
44- this . initialize ( ) . catch ( error => {
44+ this . initialize ( ) . catch ( ( error ) => {
4545 console . error ( `[FileLogger] Failed to initialize: ${ error } ` )
4646 } )
4747 }
@@ -59,24 +59,23 @@ export class FileLogger {
5959 await this . checkAndRotateLog ( )
6060
6161 // Créer le stream de log
62- this . logStream = createWriteStream ( this . logFilePath , { flags : 'a' , encoding : ' utf8' } )
63-
62+ this . logStream = createWriteStream ( this . logFilePath , { flags : "a" , encoding : " utf8" } )
63+
6464 // Gérer les erreurs du stream
65- this . logStream . on ( ' error' , ( error ) => {
65+ this . logStream . on ( " error" , ( error ) => {
6666 console . error ( `[FileLogger] Stream error: ${ error } ` )
6767 } )
6868
6969 this . isInitialized = true
70-
70+
7171 // Écrire les messages en attente
7272 await this . processWriteQueue ( )
7373
7474 // Log d'initialisation
75- await this . log ( ' INFO' , ' FILE_LOGGER' , ' FileLogger initialized successfully' , {
75+ await this . log ( " INFO" , " FILE_LOGGER" , " FileLogger initialized successfully" , {
7676 logFilePath : this . logFilePath ,
77- timestamp : new Date ( ) . toISOString ( )
77+ timestamp : new Date ( ) . toISOString ( ) ,
7878 } )
79-
8079 } catch ( error ) {
8180 console . error ( `[FileLogger] Initialization failed: ${ error } ` )
8281 this . isInitialized = false
@@ -89,13 +88,13 @@ export class FileLogger {
8988 private async checkAndRotateLog ( ) : Promise < void > {
9089 try {
9190 const stats = await fs . promises . stat ( this . logFilePath )
92-
91+
9392 if ( stats . size > this . maxLogFileSize ) {
9493 await this . rotateLogFiles ( )
9594 }
9695 } catch ( error ) {
9796 // Fichier n'existe pas encore, pas d'action nécessaire
98- if ( error . code !== ' ENOENT' ) {
97+ if ( error . code !== " ENOENT" ) {
9998 console . error ( `[FileLogger] Error checking log file size: ${ error } ` )
10099 }
101100 }
@@ -115,7 +114,7 @@ export class FileLogger {
115114 for ( let i = this . maxLogFiles - 1 ; i >= 1 ; i -- ) {
116115 const currentFile = path . join ( dir , `${ name } .${ i } ${ ext } ` )
117116 const nextFile = path . join ( dir , `${ name } .${ i + 1 } ${ ext } ` )
118-
117+
119118 try {
120119 await fs . promises . access ( currentFile )
121120 if ( i === this . maxLogFiles - 1 ) {
@@ -137,7 +136,6 @@ export class FileLogger {
137136 } catch ( error ) {
138137 console . error ( `[FileLogger] Error rotating main log file: ${ error } ` )
139138 }
140-
141139 } catch ( error ) {
142140 console . error ( `[FileLogger] Error during log rotation: ${ error } ` )
143141 }
@@ -181,7 +179,7 @@ export class FileLogger {
181179 level,
182180 component,
183181 message,
184- metadata
182+ metadata,
185183 }
186184
187185 // Formatter la ligne de log
@@ -196,36 +194,36 @@ export class FileLogger {
196194 }
197195
198196 // Aussi logger dans la console pour les erreurs
199- if ( level === ' ERROR' || level === ' WARN' ) {
200- console . log ( `[${ level } ] ${ component } : ${ message } ` , metadata || '' )
197+ if ( level === " ERROR" || level === " WARN" ) {
198+ console . log ( `[${ level } ] ${ component } : ${ message } ` , metadata || "" )
201199 }
202200 }
203201
204202 /**
205203 * Formate une entrée de log en ligne de texte
206204 */
207205 private formatLogEntry ( entry : LogEntry ) : string {
208- const metadataStr = entry . metadata ? ` | ${ JSON . stringify ( entry . metadata ) } ` : ''
206+ const metadataStr = entry . metadata ? ` | ${ JSON . stringify ( entry . metadata ) } ` : ""
209207 return `[${ entry . timestamp } ] ${ entry . level } ${ entry . component } : ${ entry . message } ${ metadataStr } \n`
210208 }
211209
212210 /**
213211 * Méthodes de convenance pour chaque niveau
214212 */
215213 async info ( component : string , message : string , metadata ?: LogMetadata ) : Promise < void > {
216- return this . log ( ' INFO' , component , message , metadata )
214+ return this . log ( " INFO" , component , message , metadata )
217215 }
218216
219217 async warn ( component : string , message : string , metadata ?: LogMetadata ) : Promise < void > {
220- return this . log ( ' WARN' , component , message , metadata )
218+ return this . log ( " WARN" , component , message , metadata )
221219 }
222220
223221 async error ( component : string , message : string , metadata ?: LogMetadata ) : Promise < void > {
224- return this . log ( ' ERROR' , component , message , metadata )
222+ return this . log ( " ERROR" , component , message , metadata )
225223 }
226224
227225 async debug ( component : string , message : string , metadata ?: LogMetadata ) : Promise < void > {
228- return this . log ( ' DEBUG' , component , message , metadata )
226+ return this . log ( " DEBUG" , component , message , metadata )
229227 }
230228
231229 /**
@@ -238,15 +236,15 @@ export class FileLogger {
238236
239237 // Log de fermeture
240238 if ( this . isInitialized ) {
241- await this . log ( ' INFO' , ' FILE_LOGGER' , ' FileLogger disposing' , {
242- pendingMessages : this . writeQueue . length
239+ await this . log ( " INFO" , " FILE_LOGGER" , " FileLogger disposing" , {
240+ pendingMessages : this . writeQueue . length ,
243241 } )
244242 }
245243
246244 // Fermer le stream
247245 if ( this . logStream ) {
248246 await new Promise < void > ( ( resolve , reject ) => {
249- this . logStream ! . end ( ( error ) => {
247+ this . logStream ! . end ( ( error : any ) => {
250248 if ( error ) reject ( error )
251249 else resolve ( )
252250 } )
@@ -273,4 +271,4 @@ export class FileLogger {
273271 isReady ( ) : boolean {
274272 return this . isInitialized
275273 }
276- }
274+ }
0 commit comments