草庐IT

javascript - 日志记录会要求单独的良好实践还是杂乱无章?

我正在开发一个API,它会进行大量调用,其中一些由于各种原因需要彻底记录。目前,我记录了函数中发生的所有输入/输出/处理,并且API运行完美,因此似乎没有必要增加日志记录量。但一个让我印象深刻的想法是为每个传入的API调用分配一个UUID,这将遵循内部函数中的日志记录。虽然它会在每个函数中创建大量附加参数来跟随UUID,但我想知道这是否是常见做法,我是否应该在需要出现之前实现它,而要做的更改量是易于管理。例如:显然真正的代码要复杂得多,并且不使用console.log进行日志记录constexpress=require('express'),fs=require('fs'),confi

javascript - 是否可以获取匿名 JavaScript 函数的名称?

是否可以获取如下声明的匿名函数的名称?varF=function(){};乍一看,答案是否定的,但显然浏览器知道并保留函数名称:varF=function(){};varx=newF();console.log(x.constructor);//functionF()(火狐)varF=function(){};varx=newF();console.log(x);//F{}(Chrome)这个名字是否可以通过某种方式访问​​?我主要需要它来记录错误,因此解决方案不必是跨浏览器的。编辑澄清:我正在从外部代码中获取一个对象,我需要知道它们的类型,因此使用其他声明方式等明显的答案并不是我要搜

javascript - 客户端分析相对于服务器端的优势是什么?

我一直使用使用JavaScript的客户端网络分析来跟踪访问者对网站的点击,以及提供的所有有用信息。但有些人最近告诉我他们更喜欢服务器端分析,因为它更快。所以我想知道在客户端使用JavaScript执行此操作的主要优势是什么?哪个功能更多?为什么? 最佳答案 ServerorClientsideforAnalytics?服务器端优势:服务器可以设置为比台式机拥有无限强大的功能,因此可以处理“大数字”。由于每个人都使用相同的机器进行分析和生成结果,因此性能更可预测。输出将不依赖于浏览器/浏览器版本,因为它们只需要显示图像。输出也可以是

javascript - 将 console.log 分配给另一个对象(Webkit 问题)

我想让我的日志语句尽可能短,同时防止控制台在不存在时被访问;我提出了以下解决方案:var_={};if(console){_.log=console.debug;}else{_.log=function(){}}对我来说,这看起来非常优雅,并且在Firefox3.6中运行良好(包括保留使console.debug比console.log更有用的行号).但它在Safari4中不起作用。[更新:或在Chrome中。所以这个问题似乎是Firebug和Webkit控制台之间的区别。]如果我按照上面的console.debug('A')_.log('B');第一个语句在两种浏览器中都工作正常,但

javascript - JavaScript console.log/trace 等策略

我正在编写一个相当大的JavaScript软件。我需要跟踪调用、记录事件、调试操作,同时保持跨浏览器的性能和可移植性。Webkit和Firebug都提供带有trace()、log()、error()、warning()等方法的控制台对象。它们很棒,但是当浏览器是IE或Opera时我该怎么办?想象一下有一个大型应用程序,您肯定希望看到它正在执行的所有初始化、正在发生的事件等,因此我让它记录这些。但是,如果我只记录这些,那么在没有在DOM中注册console的浏览器中,日志记录将不起作用。我可以创建一个包装器对象:MyNamespace.Console={};MyNamespace.Con

javascript - 监听控制台.log

我想为console.log()设置一个监听器,并在不阻止默认行为的情况下对消息做一些事情。因此,开发工具的控制台也应该收到消息。有什么想法吗? 最佳答案 从未在网页中尝试过,但它可以在浏览器插件中使用(出于安全原因,javascript权限不同)。你绝对可以选择这样的东西:(function(){varoriginallog=console.log;console.log=function(txt){//Doreallyinterestingstuffalert("I'mdoinginterestingstuffhere!");o

javascript - 全局记录 jQuery 错误(事件和 DOM 错误)

由于现在的系统越来越多地面向Javascript(jQuery、AJAX等),我们一直在努力为这些事情中的任何一个记录越来越多的错误日志。我担心的是,在jQuery本身中,当创建或执行正常的DOM操作/jQuery事件时,window.onerror无法捕获这些,这可能有助于调试错误生产速度更快,让他们登录服务器在2008年的这篇文章(.onerror&jQuerybindtry/catch{})中,他们向jQuery.bind()事件try/catch{}>甚至是document.ready事件。现在一切都通过.on()事件,这篇文章有点过时了,但我觉得逻辑仍然有效......有没有

javascript - bunyan log.child 正确的用例?

我一直在寻找用于登录我的nodejs应用程序的bunyan。我试过了,一切似乎都运行良好。我跳过了asection在log.child上,但现在我正试图了解如何使用它。我认为它的目的是允许我为日志条目指定一些特殊标识符,以便我可以唯一地标识该日志与其他日志条目的关联方式。如果是这样的话,我会设想自己在每个请求中都使用log.child:varbunyan=require('bunyan');varlog=bunyan.createLogger({name:'myapp'});router.post('/submit',function(req,res){varlogChild=log.

javascript - AngularJS:服务器端记录客户端错误

我使用Angular重写了一个Web应用程序。但现在我遇到的问题是,将客户端错误发送到服务器并不像window.onerror=function(...){...}那样容易。但这确实有助于检测错误。我使用以下代码向Angular添加了自定义异常处理程序$provide.decorator("$exceptionHandler",function($delegate){returnfunction(exception,cause){$delegate(exception,cause);log2server(exception+"("+cause+")");};});但这不允许我获取异常的

javascript - 包装 Firebug(或类似)控制台 api 时如何访问行号

我包装了控制台API以提供精细的日志记录级别以及一些其他糖功能。这工作正常,唯一的问题是Firebug(或任何其他控制台)将始终报告日志来自的行号作为控制台API本身被调用的行。您建议我如何让控制台记录我调用包装函数的行号?我更喜欢跨浏览器解决方案,但失败时使用Firebug插件可能是一个好的开始。仅供引用,我这样调用我的日志函数:db.log(db.LogLevel.WARN,"BlahBlahBlah"); 最佳答案 有趣的问题...我可能有一个破解方法给你。我现在无法对此进行测试,但我认为它可能会起作用。我们知道常规函数调用是