您的位置:首页 > Web前端

将web前端JS错误日志合并到logback中再一起汇总到mysql或其他

2016-11-25 11:51 435 查看
在java后台中 我们可以通过logback 来记录日志,便于线上问题排查;


但是 web前端的js错误就只能当场查看了,是否可以像后台一样把前端的日志也收集起来?

/**
* 收集前端错误日志
window.onerror = function(errorMessage, scriptURI, lineNumber,columnNumber,errorObj)  {
var img = new Image();
img.src = _PATH + '/sendJSError?errorMessage=' + encodeURIComponent(errorMessage) + '&scriptURI=' + encodeURIComponent(scriptURI) +
'&lineNumber=' + lineNumber + '&columnNumber=' + columnNumber + '&errorObj=' + encodeURIComponent(errorObj);
};
*
* @param {String} errorMessage 错误信息
* @param {String} scriptURI   出错的文件
* @param {Long}  lineNumber   出错代码的行号
* @param {Long}  columnNumber 出错代码的列号
* @param {Object} errorObj    错误的详细信息,Anything
*/
@RequestMapping("sendJSError")
@ResponseBody
public String sendJSError(String errorMessage,String scriptURI,String lineNumber,String columnNumber,String errorObj) {
StringBuilder message = new StringBuilder();
message.append("错误信息:" + errorMessage);
message.append("出错文件:" + scriptURI);
message.append("出错行号:" + lineNumber);
message.append("出错列号:" + columnNumber);
message.append("错误详情:" + errorObj);
BaseLog.e(IndexCtrl.class, message.toString());
return "";
}


输出到日志文件就不提了,说说怎么通过ogback将日志输出到数据库.

<!--日志异步到数据库 -->
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender>

输出到数据的好处是 可以在 运营管理后台 来 分析和查看 错误日志。

当然也可以 自定义 存放的 位置 和格式 ,比如存到 mangodb 等

可以通过 BaseLog 来处理。参考附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息