Google chrome 将Chrome中的console.log保存到一个文件中

Google chrome 将Chrome中的console.log保存到一个文件中,google-chrome,console,logging,Google Chrome,Console,Logging,有人知道如何将Chrome中的console.log输出保存到文件中吗?或者如何从控制台复制文本 假设您正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出它?我需要做同样的事情,这就是我找到的解决方案: 使用以下标志从命令行启用: --启用日志记录--v=1 这会记录Chrome内部所做的一切,但也会记录所有console.log()消息。日志文件名为chrome_debug.log,位于中 使用控制台(\d+)筛选获取的日志文件中的行 请注意,控

有人知道如何将Chrome中的console.log输出保存到文件中吗?或者如何从控制台复制文本


假设您正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出它?

我需要做同样的事情,这就是我找到的解决方案:

  • 使用以下标志从命令行启用:

    --启用日志记录--v=1

    这会记录Chrome内部所做的一切,但也会记录所有
    console.log()
    消息。日志文件名为chrome_debug.log,位于中

  • 使用
    控制台(\d+)
    筛选获取的日志文件中的行


  • 请注意,控制台日志不会随
    --incognito

    一起出现,这可能会有帮助,也可能没有帮助,但在Windows上,您可以使用Windows事件跟踪来读取控制台日志

    我们的集成测试在.NET中运行,因此我使用此方法将控制台日志添加到测试输出中。我制作了一个示例控制台项目来演示:


    --启用日志记录--在最新版本的Chrome上,v=1似乎不起作用。

    有一个开源javascript插件可以做到这一点,但对于任何浏览器-


    Debugout.js记录并保存console.log,以便应用程序可以访问它们。完全公开,我写的。它可以适当地格式化不同的类型,可以处理嵌套对象和数组,并且可以选择在每个日志旁边放置时间戳。您还可以在一个位置切换实时日志记录,而无需删除所有日志记录语句。

    还有另一个开源工具,它允许您将所有
    控制台.log
    输出保存在服务器上的文件中-(plug!)

    JS LogFlush是一个集成的JavaScript日志记录解决方案,包括:

    • 无需跨浏览器UI即可在客户端替换console.log
    • 日志存储系统-在服务器端

    好消息 Chrome开发工具现在允许您将控制台输出保存到本地文件中

  • 打开控制台
  • 右击
  • 选择“另存为…”

  • Chrome开发者说明。

    如果您在本地主机上运行Apache服务器(不要在生产服务器上执行此操作),您还可以将结果发布到脚本,而不是将其写入控制台

    因此,您可以编写以下内容,而不是
    console.log

    JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});
    
    然后
    save.php
    就可以这样做了

    <?php
    
     $fn = $_REQUEST['fn'];
     $data = $_REQUEST['data'];
    
     file_put_contents("path/$fn", $data);
    

    有很多很好的答案,但为什么不直接使用JSON.stringify(您的_变量)?然后通过复制和粘贴(删除外部引号)获取内容。我也在网站上发布了同样的答案:

    为了更好地使用日志文件(无需Chrome调试),请使用:

    而不是
    --v=1
    这信息太多了

    它仍然会像你通常在Chrome控制台中看到的那样提供错误和警告


    2020年5月18日更新:事实上,我认为这不再是事实。无论这个日志级别是什么,我都找不到控制台消息。

    我找到了一个很好的方法来实现这一点

  • 在控制台中,右键单击控制台记录的对象

  • 单击“存储为全局变量”

  • 请参见新变量的名称-例如,它是variableName1

  • 在控制台中键入:JSON.stringify(variableName1)

  • 复制变量字符串内容:例如{“a”:1,“b”:2,“c”:3}

  • 转到某个JSON在线编辑器: e、 g

  • 现在很容易-右键单击控制台日志中显示的任何项目,然后选择“另存为”,并将整个日志输出保存到计算机上的一个文件中。

    在Linux上(至少),您可以在环境中设置CHROME\u log\u文件,让CHROME在每次运行时将控制台活动的日志写入指定文件中。每次chrome启动时,日志都会被覆盖。这样,如果您有一个运行chrome的自动会话,您就不需要更改chrome的启动方式,并且会话结束后日志就在那里


    导出CHROME\u LOG\u FILE=CHROME.LOG

    此线程中的其他解决方案在我的mac上不起作用。下面是一个记录器,它使用ajax间歇性地保存字符串表示。与
    console.save一起使用,而不是
    console.log

    var logFileString=“”;
    var maxLogLength=1024*128;
    console.save=function(){
    var logArgs={};
    
    对于(var i=0;i

    对于谷歌Chrome 84.0.4147.105及更高版本

    只需右键单击并单击“另存为”和“保存”

    然后,将保存txt文件

  • 右键直接单击要复制的记录值
  • 在右键菜单中,选择“存储为全局变量”
  • 您将在控制台的下一行看到保存为类似“temp1”的值
  • 在控制台中,键入
    copy(temp1)
    并点击return(用上一步中的变量名替换
    temp1
    )。现在记录的值被复制到剪贴板
  • 将值粘贴到所需的任何位置
  • 如果您不想在Chrome中更改标志/设置,也不想处理JSON字符串化和解析等问题,那么这是一种特别好的方法


    更新:我刚刚发现了我建议使用的图像的解释,更容易理解

    看,它似乎在我的mac操作系统上不起作用,有内部日志,但没有Console.log…这不会将Console.log信息保存到日志文件中。在Windows 8中。在mac上,我在~/Library/Application Support/Google/Chrome/ch找到了日志文件rome_debug.log这仍然适用于我在OSX 10.10.3
    /Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--enable logging--v=1
    中保存在
    ~/Library/Application Support/Google/Chrome/Chrome_debug.log中的日志
    
    --enable-logging --log-level=0