我正在仅在客户端处理 javascript Web 应用程序。我在本地服务器上运行时使用 log4javascript 记录应用程序功能,因为在单元测试期间我无法让 log4javascript 工作(在 Jasmine+Karma 或 Mocha 中),我在 Node 上运行单元测试时使用 log4js 进行记录摩卡。
要在正常的 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>
因为我想在单元测试期间登录到控制台,所以我需要在运行正常 Web 应用程序期间登录的相同 javascript.js 文件中设置 log4js。IE:
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 期间是否有更好的方法来使用日志记录?