diff --git a/src/Console/Log.hbs b/src/Console/Log.hbs
index 5eaefad..df39ead 100644
--- a/src/Console/Log.hbs
+++ b/src/Console/Log.hbs
@@ -1,10 +1,10 @@
-{{#if displayHeader}}
+{{#if headers}}
{{#repeat group.indentLevel}}
{{/repeat}}
- {{time}} {{from}}
+ {{headers.time}} {{headers.from}}
{{/if}}
diff --git a/src/Console/Log.js b/src/Console/Log.js
index 310530e..15c096a 100644
--- a/src/Console/Log.js
+++ b/src/Console/Log.js
@@ -8,7 +8,6 @@ import {
isPrimitive,
wrap,
defaults,
- dateFormat,
getObjType,
isEl,
toStr,
@@ -48,7 +47,7 @@ export default class Log extends Emitter {
id,
group = {},
targetGroup = {},
- displayHeader = false,
+ headers,
ignoreFilter = false
}) {
super()
@@ -59,7 +58,7 @@ export default class Log extends Emitter {
this.args = args
this.count = 1
this.id = id
- this.displayHeader = displayHeader
+ this.headers = headers
this.ignoreFilter = ignoreFilter
this.collapsed = false
this.el = document.createElement('li')
@@ -68,11 +67,6 @@ export default class Log extends Emitter {
this.width = 0
this._$el = $(this.el)
- if (displayHeader) {
- this.time = getCurTime()
- this.from = getFrom()
- }
-
this._formatMsg()
if (this.group) {
@@ -242,7 +236,7 @@ export default class Log extends Emitter {
}
_formatMsg() {
let { args } = this
- const { type, id, displayHeader, time, from, group } = this
+ const { type, id, headers, group } = this
// Don't change original args for lazy evaluation.
args = clone(args)
@@ -320,7 +314,7 @@ export default class Log extends Emitter {
return `${url}`
})
}
- msg = render({ msg, type, icon, id, displayHeader, time, from, group })
+ msg = render({ msg, type, icon, id, headers, group })
this._$el.addClass('eruda-log-container').html(msg)
this._$content = this._$el.find('.eruda-log-content')
@@ -562,24 +556,6 @@ function formatEl(val) {
)}`
}
-function getFrom() {
- const e = new Error()
- let ret = ''
- const lines = e.stack ? e.stack.split('\n') : ''
-
- for (let i = 0, len = lines.length; i < len; i++) {
- ret = lines[i]
- if (ret.indexOf('winConsole') > -1 && i < len - 1) {
- ret = lines[i + 1]
- break
- }
- }
-
- return ret
-}
-
-const getCurTime = () => dateFormat('HH:MM:ss')
-
const tpl = require('./Log.hbs')
const render = data => tpl(data)
diff --git a/src/Console/Logger.js b/src/Console/Logger.js
index f296416..b6f2cd2 100644
--- a/src/Console/Logger.js
+++ b/src/Console/Logger.js
@@ -22,7 +22,8 @@ import {
raf,
xpath,
isHidden,
- lowerCase
+ lowerCase,
+ dateFormat
} from '../lib/util'
import evalCss from '../lib/evalCss'
@@ -300,16 +301,24 @@ export default class Logger extends Emitter {
return this
}
insert(type, args) {
+ let headers
+ if (this._displayHeader) {
+ headers = {
+ time: getCurTime(),
+ from: getFrom()
+ }
+ }
+
this._asyncRender
- ? this.insertAsync(type, args)
- : this.insertSync(type, args)
+ ? this.insertAsync(type, args, headers)
+ : this.insertSync(type, args, headers)
}
- insertAsync(type, args) {
- this._asyncList.push([type, args])
+ insertAsync(type, args, headers) {
+ this._asyncList.push([type, args, headers])
this._handleAsyncList()
}
- insertSync(type, args) {
+ insertSync(type, args, headers) {
const logs = this._logs
const groupStack = this._groupStack
@@ -327,7 +336,7 @@ export default class Logger extends Emitter {
}
extend(options, {
id: ++id,
- displayHeader: this._displayHeader
+ headers
})
if (options.type === 'group' || options.type === 'groupCollapsed') {
@@ -494,8 +503,8 @@ export default class Logger extends Emitter {
done = true
}
for (let i = 0; i < num; i++) {
- const [type, args] = asyncList.shift()
- this.insertSync(type, args)
+ const [type, args, headers] = asyncList.shift()
+ this.insertSync(type, args, headers)
}
if (!done) raf(() => this._handleAsyncList(timeout))
}, timeout)
@@ -700,3 +709,21 @@ export default class Logger extends Emitter {
this._ignoreScroll = true
}
}
+
+const getCurTime = () => dateFormat('HH:MM:ss')
+
+function getFrom() {
+ const e = new Error()
+ let ret = ''
+ const lines = e.stack ? e.stack.split('\n') : ''
+
+ for (let i = 0, len = lines.length; i < len; i++) {
+ ret = lines[i]
+ if (ret.indexOf('winConsole') > -1 && i < len - 1) {
+ ret = lines[i + 1]
+ break
+ }
+ }
+
+ return ret
+}