【发布时间】:2014-12-12 17:55:52
【问题描述】:
我为控制台日志创建了一个包装器。我一直无法让它显示调用包装函数的记录行号。我查看了其他帖子来处理这个问题,但我似乎无法得到他们提到的内容。他们基本上是将 console.log 绑定到外部函数,但在使用之前我需要在内部做其他工作。
我的设置可以吗?
var logger = (function (window, console) {
// logger object
function logger() {
// use to initialize the logger
function init() {
fixConsole();
}
// fix missing console
function fixConsole() {
var logmethod;
var noop = function () { };
var logmethods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = logmethods.length;
console = (window.console = window.console || {});
while (length--) {
logmethod = logmethods[length];
// Only stub undefined methods.
if (!console[logmethod]) {
console[logmethod] = noop;
}
}
}
// initializing the logger
init();
}
// logging methods
logger.prototype = {
info: function (msg, title) {
if (title)
console.log(title + ": " + msg);
else
console.log(msg);
}
}
// create logger
function _create() {
// create logger
var log = new logger();
// return logger
return log;
}
// exposed functions
return {
create: _create
}
})(window, console);
var log = logger.create();
log.info('Hello, I am trying to get the logger to log under the line number info is used on.');
log.info('For instance I want line number 75 to show.');
<h1> Press F12 and look at the console to see</h1>
【问题讨论】:
-
not with
console.logthis question 有其他选择。 -
我很害怕 :( 谢谢你的链接,我读完了。
-
@scrappedcola 如果您想留下答案,请给它贴上标签,因为我得到了我需要的东西,不幸的是,它不如内置的行链接好,但您能做什么:/.
标签: javascript logging