99 JobMetrics ,
1010 SchedulerConfig ,
1111 PersistenceOptions ,
12+ Logger ,
1213} from "./types" ;
1314import { FilePersistenceProvider } from "./persistence/file" ;
1415import type { PersistenceProvider } from "./persistence/types" ;
@@ -27,8 +28,10 @@ class Baker implements IBaker {
2728 private persistenceProvider ?: PersistenceProvider ;
2829 private enableMetrics : boolean ;
2930 private onError ?: ( error : Error , jobName : string ) => void ;
31+ private logger : Logger ;
3032
3133 constructor ( options : IBakerOptions = { } ) {
34+ this . logger = options . logger ?? console ;
3235 this . config = {
3336 pollingInterval : options . schedulerConfig ?. pollingInterval ?? 1000 ,
3437 useCalculatedTimeouts :
@@ -65,7 +68,7 @@ class Baker implements IBaker {
6568 if ( this . persistence . enabled && this . persistence . autoRestore ) {
6669 const restorePromise = this . restoreState ( ) ;
6770 restorePromise . catch ( ( err ) => {
68- console . warn ( "Failed to restore state:" , err ) ;
71+ this . logger . warn ( "Failed to restore state:" , err ) ;
6972 } ) ;
7073 this . initialRestorePromise = restorePromise ;
7174 }
@@ -94,14 +97,19 @@ class Baker implements IBaker {
9497 pollingInterval : this . config . pollingInterval ,
9598 } ;
9699
100+ const jobLogger = options . logger ?? this . logger ;
101+
97102 const enhancedOptions : CronOptions < T > = {
98103 ...options ,
99104 maxHistory : options . maxHistory ?? this . config . maxHistoryEntries ,
105+ logger : jobLogger ,
100106 onError :
101107 options . onError ??
102108 ( ( error : Error ) => {
103109 if ( this . onError ) {
104110 this . onError ( error , options . name ) ;
111+ } else {
112+ jobLogger . warn ( `Cron job '${ options . name } ' failed:` , error ) ;
105113 }
106114 } ) ,
107115 } ;
@@ -113,7 +121,7 @@ class Baker implements IBaker {
113121
114122 if ( this . persistence . enabled && ! this . isRestoring ) {
115123 this . saveState ( ) . catch ( ( err ) => {
116- console . warn ( "Failed to save state:" , err ) ;
124+ this . logger . warn ( "Failed to save state:" , err ) ;
117125 } ) ;
118126 }
119127
@@ -130,7 +138,7 @@ class Baker implements IBaker {
130138
131139 if ( this . persistence . enabled ) {
132140 this . saveState ( ) . catch ( ( err ) => {
133- console . warn ( "Failed to save state:" , err ) ;
141+ this . logger . warn ( "Failed to save state:" , err ) ;
134142 } ) ;
135143 }
136144 }
@@ -174,7 +182,7 @@ class Baker implements IBaker {
174182
175183 if ( this . persistence . enabled ) {
176184 this . saveState ( ) . catch ( ( err ) => {
177- console . warn ( "Failed to save state:" , err ) ;
185+ this . logger . warn ( "Failed to save state:" , err ) ;
178186 } ) ;
179187 }
180188 }
@@ -259,7 +267,7 @@ class Baker implements IBaker {
259267
260268 if ( this . persistence . enabled ) {
261269 this . saveState ( ) . catch ( ( err ) => {
262- console . warn ( "Failed to save state:" , err ) ;
270+ this . logger . warn ( "Failed to save state:" , err ) ;
263271 } ) ;
264272 }
265273 }
@@ -314,7 +322,7 @@ class Baker implements IBaker {
314322 let restoredCount = 0 ;
315323 for ( const jobData of state . jobs ) {
316324 if ( ! jobData . name || ! jobData . cron ) {
317- console . warn ( "Skipping invalid job data:" , jobData ) ;
325+ this . logger . warn ( "Skipping invalid job data:" , jobData ) ;
318326 continue ;
319327 }
320328 if ( jobData . persist === false ) {
@@ -329,7 +337,7 @@ class Baker implements IBaker {
329337 name : jobData . name ,
330338 cron : jobData . cron ,
331339 callback : ( ) => {
332- console . warn (
340+ this . logger . warn (
333341 `Restored job '${ jobData . name } ' executed but no callback was provided`
334342 ) ;
335343 } ,
@@ -356,11 +364,11 @@ class Baker implements IBaker {
356364 this . restoredJobs . add ( jobData . name ) ;
357365 restoredCount ++ ;
358366 } catch ( error ) {
359- console . warn ( `Failed to restore job '${ jobData . name } ':` , error ) ;
367+ this . logger . warn ( `Failed to restore job '${ jobData . name } ':` , error ) ;
360368 }
361369 }
362370 if ( restoredCount > 0 ) {
363- console . log ( `Restored ${ restoredCount } cron jobs from persistence` ) ;
371+ this . logger . info ( `Restored ${ restoredCount } cron jobs from persistence` ) ;
364372 }
365373 } catch ( error ) {
366374 throw new Error ( `Failed to restore state: ${ error } ` ) ;
0 commit comments