Skip to content

Commit

Permalink
Merge pull request #21 from jecisc/18-Add-way-to-add-a-logger-only-if…
Browse files Browse the repository at this point in the history
…-not-already-existing

18-Add-way-to-add-a-logger-only-if-not-already-existing
  • Loading branch information
jecisc committed Jun 14, 2019
2 parents 2b7aded + 3a78890 commit ed94153
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/TinyLogger-Tests/TinyFileLoggerTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ TinyFileLoggerTest >> tearDown [
super tearDown
]

{ #category : #test }
TinyFileLoggerTest >> testCanHaveDefaultFile [
self shouldnt: [ self actualClass new fileReference ] raise: Error
]

{ #category : #test }
TinyFileLoggerTest >> testClearLogger [
log := (self fileNameNumber: 1) asFileReference.
Expand Down
51 changes: 51 additions & 0 deletions src/TinyLogger-Tests/TinyLoggerTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,57 @@ TinyLoggerTest >> testClearLogger [
self assert: (logger fileLoggers noneSatisfy: [ :fileLogger | fileLogger fileReference exists ])
]

{ #category : #test }
TinyLoggerTest >> testEnsureFileLogger [
logger removeAllLoggers.
self assert: logger loggers isEmpty.

logger ensureFileLogger.
self assert: logger loggers size equals: 1.
self assert: logger fileLoggers size equals: 1.

logger ensureFileLogger.
self assert: logger loggers size equals: 1.
self assert: logger fileLoggers size equals: 1
]

{ #category : #test }
TinyLoggerTest >> testEnsureFileLoggerNamed [
logger removeAllLoggers.
self assert: logger loggers isEmpty.

logger ensureFileLoggerNamed: 'test.log'.
self assert: logger fileLoggers size equals: 1.

logger ensureFileLoggerNamed: 'test.log'.
logger ensureFileLoggerNamed: 'test2.log'.
self assert: logger fileLoggers size equals: 2
]

{ #category : #test }
TinyLoggerTest >> testEnsureStdoutLogger [
logger removeAllLoggers.
self assert: logger loggers isEmpty.

logger
ensureStdoutLogger;
ensureStdoutLogger.
self assert: logger loggers size equals: 1.
self assert: logger stdoutLoggers size equals: 1
]

{ #category : #test }
TinyLoggerTest >> testEnsureTranscriptLogger [
logger removeAllLoggers.
self assert: logger loggers isEmpty.

logger
ensureTranscriptLogger;
ensureTranscriptLogger.
self assert: logger loggers size equals: 1.
self assert: logger transcriptLoggers size equals: 1
]

{ #category : #test }
TinyLoggerTest >> testExecuteRecordedAs [
| contents stream bool |
Expand Down
2 changes: 1 addition & 1 deletion src/TinyLogger-Tests/TinyStdoutLoggerTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ TinyStdoutLoggerTest >> actualClass [

{ #category : #test }
TinyStdoutLoggerTest >> testClearLogger [
"Do nothing because stdio cannot be clear"
self shouldnt: [ logger clearLogger ] raise: Error
]

{ #category : #test }
Expand Down
12 changes: 11 additions & 1 deletion src/TinyLogger/TinyFileLogger.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ Class {
#category : #'TinyLogger-Core'
}

{ #category : #accessing }
TinyFileLogger class >> defaultFileName [
^ 'TinyLogger.log'
]

{ #category : #'instance creation' }
TinyFileLogger class >> for: aLogger named: aString [
^ (self for: aLogger)
Expand All @@ -55,9 +60,14 @@ TinyFileLogger >> clearLogger [
self fileReference ensureDelete
]

{ #category : #accessing }
TinyFileLogger >> defaultFileName [
^ self class defaultFileName
]

{ #category : #accessing }
TinyFileLogger >> fileName [
^ fileName ifNil: [ fileName := 'TinyLogger.log' ]
^ fileName ifNil: [ fileName := self defaultFileName ]
]

{ #category : #accessing }
Expand Down
26 changes: 26 additions & 0 deletions src/TinyLogger/TinyLogger.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,32 @@ TinyLogger >> depth: anObject [
depth := anObject
]

{ #category : #'public API' }
TinyLogger >> ensureFileLogger [
"Ensure a file logger to `TinyLogger.log` is in the logger. In case one already exists, does nothing."

self ensureFileLoggerNamed: TinyFileLogger defaultFileName
]

{ #category : #'public API' }
TinyLogger >> ensureFileLoggerNamed: aString [
"Ensure a file logger to a file whose name is given as parameter is in the logger. In case one already exists, does nothing."

self fileLoggers
detect: [ :e | e fileName = aString ]
ifNone: [ self addFileLoggerNamed: aString ]
]

{ #category : #'public API' }
TinyLogger >> ensureStdoutLogger [
self stdoutLoggers ifEmpty: [ self addStdoutLogger ]
]

{ #category : #'public API' }
TinyLogger >> ensureTranscriptLogger [
self transcriptLoggers ifEmpty: [ self addTranscriptLogger ]
]

{ #category : #'public API' }
TinyLogger >> execute: aBlock recordedAs: aString [
self increaseDepthLevel.
Expand Down

0 comments on commit ed94153

Please sign in to comment.