Skip to content

Commit

Permalink
🚧 [chalk-logger] feat: support to config whether display title
Browse files Browse the repository at this point in the history
  • Loading branch information
lemon-clown committed Oct 21, 2020
1 parent 057dbe6 commit 7292324
Showing 1 changed file with 31 additions and 13 deletions.
44 changes: 31 additions & 13 deletions packages/chalk-logger/src/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export interface LoggerOptions {
name?: string
level?: Level
date?: boolean
title?: boolean
inline?: boolean
colorful?: boolean
encoding?: string
Expand All @@ -37,6 +38,7 @@ export class Logger {
public readonly placeholderRegex: RegExp = /(?<!\\)\{\}/g
public readonly flags = {
date: false,
title: true,
inline: false,
colorful: true,
}
Expand All @@ -58,6 +60,7 @@ export class Logger {
mode,
level,
date,
title,
inline,
colorful,
write,
Expand All @@ -76,6 +79,7 @@ export class Logger {

// set flags
if (date != null) self.flags.date = date
if (title != null) self.flags.title = title
if (inline != null) self.flags.inline = inline
if (colorful != null) self.flags.colorful = colorful

Expand Down Expand Up @@ -117,25 +121,39 @@ export class Logger {
message = level.contentChalk.bg(message)
}
}
return `${ header }: ${ message }`

return header.length > 0 ? `${ header }: ${ message }` : message
}

// format a log record's header.
public formatHeader(level: Level, date: Date): string {
let { desc } = level
const { name, dateChalk, nameChalk } = this
let chalkedName = name
if (this.flags.colorful) {
desc = level.headerChalk.fg(desc)
if (level.headerChalk.bg != null) desc = level.headerChalk.bg(desc)
chalkedName = nameChalk(name as any)
let dateInfo = ''
if (this.flags.date) {
const { dateChalk } = this
dateInfo = moment(date).format('YYYY-MM-DD HH:mm:ss')
if (this.flags.colorful) dateInfo = dateChalk(dateInfo)
}

let title = ''
if (this.flags.title) {
let { desc } = level
const { name, nameChalk } = this
let chalkedName = name
if (this.flags.colorful) {
desc = level.headerChalk.fg(desc)
if (level.headerChalk.bg != null) desc = level.headerChalk.bg(desc)
chalkedName = nameChalk(name as any)
}
title = name.length > 0 ? `${ desc } ${ chalkedName }` : desc
title = `[${ title }]`
}

if (dateInfo.length > 0) {
if (title.length > 0) return dateInfo + ' ' + title
return dateInfo
}
const header = name.length > 0 ? `${ desc } ${ chalkedName }` : desc
if (!this.flags.date) return `[${ header }]`

let dateString = moment(date).format('YYYY-MM-DD HH:mm:ss')
if (this.flags.colorful) dateString = dateChalk(dateString as any)
return `${ dateString } [${ header }]`
return title
}

// format a log record part message according its type.
Expand Down

0 comments on commit 7292324

Please sign in to comment.