Skip to content

Commit

Permalink
add AsyncFutureCompositeLogger [feenkcom/gtoolkit#3778]
Browse files Browse the repository at this point in the history
  • Loading branch information
JurajKubelka committed May 16, 2024
1 parent 23a47d3 commit afde602
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 2 deletions.
41 changes: 41 additions & 0 deletions src/Futures/AsyncFutureCompositeLogger.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Class {
#name : #AsyncFutureCompositeLogger,
#superclass : #Object,
#traits : 'TAsyncFutureLogger',
#classTraits : 'TAsyncFutureLogger classTrait',
#instVars : [
'loggers'
],
#category : #'Futures-Executor - Logger'
}

{ #category : #converting }
AsyncFutureCompositeLogger >> composeWith: aLogger [
self logger: aLogger.
^ self
]

{ #category : #testing }
AsyncFutureCompositeLogger >> includesLogger: aLogger [
^ self loggers anySatisfy: [ :eachLogger | eachLogger includesLogger: aLogger ]
]

{ #category : #accessing }
AsyncFutureCompositeLogger >> logger: aLogger [
self loggers: (self loggers copyWith: aLogger)
]

{ #category : #accessing }
AsyncFutureCompositeLogger >> loggers [
^ loggers ifNil: [ #() ]
]

{ #category : #accessing }
AsyncFutureCompositeLogger >> loggers: aCollection [
loggers := aCollection
]

{ #category : #logging }
AsyncFutureCompositeLogger >> pendingTask: aPendingTask [
self loggers do: [ :eachLogger | eachLogger pendingTask: aPendingTask ]
]
14 changes: 12 additions & 2 deletions src/Futures/AsyncFutureThreadPoolWorker.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,28 @@ Class {
#category : #'Futures-Executor - Thread Pool'
}

{ #category : #accessing }
{ #category : #'api - logger' }
AsyncFutureThreadPoolWorker class >> addDefaultLogger: aLogger [
self defaultLogger: (self defaultLogger composeWith: aLogger)
]

{ #category : #'api - logger' }
AsyncFutureThreadPoolWorker class >> defaultLogger [
<return: #TAsyncFutureLogger>
^ DefaultLogger ifNil: [
DefaultLogger := AsyncFutureDetailedTranscriptLogger new ]
]

{ #category : #accessing }
{ #category : #'api - logger' }
AsyncFutureThreadPoolWorker class >> defaultLogger: aLogger [
DefaultLogger := aLogger
]

{ #category : #'api - logger' }
AsyncFutureThreadPoolWorker class >> ensureDefaultLogger: aLogger [
self defaultLogger: (self defaultLogger ensureLogger: aLogger)
]

{ #category : #'api - accessing' }
AsyncFutureThreadPoolWorker >> acceptsFutures [
<return: #Boolean>
Expand Down
16 changes: 16 additions & 0 deletions src/Futures/TAsyncFutureLogger.trait.st
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,22 @@ Trait {
#category : #'Futures-Executor - Logger'
}

{ #category : #converting }
TAsyncFutureLogger >> composeWith: aLogger [
^ AsyncFutureCompositeLogger new
loggers: {self. aLogger}
]

{ #category : #converting }
TAsyncFutureLogger >> ensureLogger: aLogger [
^ (self includesLogger: aLogger) ifTrue: [ self ] ifFalse: [ self composeWith: aLogger ]
]

{ #category : #testing }
TAsyncFutureLogger >> includesLogger: aLogger [
^ self class = aLogger class
]

{ #category : #logging }
TAsyncFutureLogger >> pendingTask: aPendingTask [

Expand Down

0 comments on commit afde602

Please sign in to comment.