用于单元测试和运行基于浏览器的 Web 应用程序的 Javascript 日志记录设置
Javascript logging setup for unit testing and running browser based web app
我正在开发一个客户端的javascript web应用程序。我在本地服务器上运行时使用 log4javascript 来记录应用程序功能,并且因为我无法在单元测试期间让 log4javascript 工作(在 Jasmine+Karma 或 Mocha 中),所以我使用 log4js 进行日志记录,同时使用 Node 使用 Mocha 在 Node 上运行单元测试。
要在正常的webb应用程序运行期间进行记录,我从html页面创建log4javascript记录器(因为我无法找到从javascript.js文件创建glogal记录器的方法),使用:
<script src="{{ url_for('static', filename='js/log4javascript.js') }}" type="text/javascript"></script>
<script type="text/javascript">
var logger = log4javascript.getDefaultLogger();
</script>
因为我想在单元测试期间登录到控制台,所以我需要在相同的 javascript.js 文件中设置 log4js,我在正常 Web 应用程序运行期间
从中记录。 即:var log4js = require('log4js');
log4js.configure({
appenders: [
{
"type": "logLevelFilter",
"level": "DEBUG",
"appender":
{
"type": "console"
}
}
]
});
var logger = log4js.getLogger();
然后从内部函数我可以使用:
logger.debug("functionName message");
这在从 log4JavaScript 和 log4js 记录时会起作用,但这很混乱,因为我在每个 JavaScript 文件中都有 require('log4js') 语句(在浏览器上运行时似乎被忽略),并且记录器有两个含义。在开发基于浏览器的javascript期间,有没有更好的方法来使用日志记录?
我最终在应用程序代码和winston记录器中使用了console.log进行单元测试。
有关如何覆盖控制台.log的一个很好的例子可以在这里找到:http://seanmonstar.com/post/56448644049/consolelog-all-the-things
相关文章:
- 在Web应用程序中使用Highcharts javascript
- 将下载链接从web浏览器传递给第三方应用程序
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- Web应用程序,将成员状态更新为其他成员
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- web浏览器中的离线应用程序存储数据并在之后上传
- 使用Ember的Web应用程序架构.动画逻辑应该放在哪里
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- c#web应用程序中的条形码打印
- 使用javascript为web应用程序自定义键盘快捷键
- 使用angularjs和node.js时的Web应用程序文件夹结构
- PhpWindows 8.1版本上的Javascript web应用程序
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 如何获取使用我们的脚本或web应用程序的网站名称
- 没有框架/DLL的VS Web应用程序项目
- 正确传输和保护用户'web应用程序的密码
- 检查Progressive web应用程序中的网络更改
- 如何在应用程序>Web浏览器控件中使用Google Maps API v3 ClientID