Skip to content

Commit d280aa7

Browse files
committed
Merge branch 'CG-151' into 'master'
CG-151: feat(debugLog): write error/debug logs to file in debug mode See merge request auto-cloud/cloudgraph/sdk!24
2 parents 7a2c201 + 3b1cb73 commit d280aa7

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/logger/index.ts

+23-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ora, { Ora } from 'ora'
2+
import fs from 'fs'
23

34
export enum LogLevel {
45
Silent = -1,
@@ -15,12 +16,16 @@ export class Logger {
1516
constructor(debug: string) {
1617
const levelRange = ['-1', '0', '1', '2', '3', '4', '5']
1718
this.level = levelRange.indexOf(debug) > -1 ? Number(debug) : 3
19+
this.errorLogFile = './cg-debug.log'
1820
this.logger = ora({ isSilent: this.level === LogLevel.Silent })
1921
this.spinnerMap = {}
22+
this.clearLog()
2023
}
2124

2225
level: LogLevel
2326

27+
errorLogFile: string
28+
2429
logger: Ora
2530

2631
startText: string
@@ -56,6 +61,18 @@ export class Logger {
5661
return value
5762
}
5863

64+
private clearLog() {
65+
if (this.level >= LogLevel.Trace) {
66+
fs.writeFileSync(this.errorLogFile, '')
67+
}
68+
}
69+
70+
private writeLog(text: string) {
71+
if (this.level >= LogLevel.Trace) {
72+
fs.appendFileSync(this.errorLogFile, `${text }\n`)
73+
}
74+
}
75+
5976
startSpinner(msg): void {
6077
const instance = this.logger.start(msg)
6178
this.spinnerMap = {msg, instance}
@@ -99,8 +116,10 @@ export class Logger {
99116

100117
error(msg: string | { [key: string]: any }): void {
101118
if (this.level >= LogLevel.Error) {
119+
const parsedMessage = this.parseMessage(msg)
102120
this.stopSpinner()
103-
this.logger.fail(this.parseMessage(msg))
121+
this.logger.fail(parsedMessage)
122+
this.writeLog(parsedMessage)
104123
this.spinnerMap.instance && this.startSpinner(this.spinnerMap.msg)
105124
}
106125
}
@@ -123,8 +142,10 @@ export class Logger {
123142

124143
debug(msg: string | { [key: string]: any }): void {
125144
if (this.level >= LogLevel.Trace) {
145+
const parsedMessage = this.parseMessage(msg)
126146
this.stopSpinner()
127-
this.logger.info(this.parseMessage(msg))
147+
this.logger.info(parsedMessage)
148+
this.writeLog(parsedMessage)
128149
this.spinnerMap.instance && this.startSpinner(this.spinnerMap.msg)
129150
}
130151
}

0 commit comments

Comments
 (0)