Javascript 如何使用console.log省略文件/行号

Javascript 如何使用console.log省略文件/行号,javascript,browser,google-chrome-devtools,console.log,Javascript,Browser,Google Chrome Devtools,Console.log,现在,在Chrome的控制台上,你可以写很多漂亮的东西。结帐链接。我还做了一个截图: 正如您在屏幕截图中看到的,文件名/行号(VM298:4)写在右侧。是否可以删除它,因为在我的例子中,这是一个很长的名称,或多或少破坏了我试图在控制台中产生的效果?另一个选项是使用 这很简单。您需要将setTimeout与console.log.bind一起使用: setTimeout (console.log.bind (console, "This is a sentence.")); 如果您想对其应用C

现在,在Chrome的控制台上,你可以写很多漂亮的东西。结帐链接。我还做了一个截图:


正如您在屏幕截图中看到的,文件名/行号(
VM298:4
)写在右侧。是否可以删除它,因为在我的例子中,这是一个很长的名称,或多或少破坏了我试图在控制台中产生的效果?

另一个选项是使用


这很简单。您需要将
setTimeout
console.log.bind
一起使用:

setTimeout (console.log.bind (console, "This is a sentence."));
如果您想对其应用CSS或其他文本,只需添加add
%c
或任何其他
%
变量:

setTimeout (console.log.bind (console, "%cThis is a sentence.", "font-weight: bold;"));
var css = "text-decoration: underline;";
setTimeout (console.log.bind (console, "%cThis is a sentence.", css));
请注意,此方法将始终放在日志列表的末尾。例如:

console.log ("Log 1");
setTimeout (console.log.bind (console, "This is a sentence."));
console.log ("Log 2");
将显示为

Log 1
Log 2
This is a sentence.
而不是

Log 1
This is a sentence.
Log 2

我希望这能回答您的问题。

使用
queueMicrotask
console.log.bind
在登录时释放源文件信息:

queueMicrotask(console.log.bind(console,“看!没有源文件信息…”);

如果有多个调用,排队微任务将保持日志记录的顺序,而
setTimeout
不保证按顺序执行任务。

要保持日志记录语句干净,您可以定义以下函数,只需使用
控制台。打印
即可不使用文件名/行号进行日志记录:

// console.print: console.log without filename/line number
console.print = function (...args) {
    queueMicrotask (console.log.bind (console, ...args));
}
console.print
采用与
console.log
相同的参数,例如:

console.log ("Log 1");
setTimeout (console.log.bind (console, "This is a sentence."));
console.log ("Log 2");
console.print(“没有文件名信息的文本”)


console.print(“%c自定义CSS,无行号!”,“背景:#555555;颜色:#00aaff”)

仅供参考,setTimeout不保证订单。它只是不能保证它会在准确的时间被调用。