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 +}