mirror of
https://github.com/openstf/stf
synced 2025-10-06 03:50:04 +02:00
75 lines
1.5 KiB
JavaScript
75 lines
1.5 KiB
JavaScript
var _ = require('lodash')
|
|
var _s = require('underscore.string')
|
|
|
|
module.exports = function LogcatServiceFactory(socket, DeviceService) {
|
|
var service = {}
|
|
service.started = false
|
|
service.maxEntriesBuffer = 5000
|
|
service.numberOfEntries = 0
|
|
|
|
service.filters = {
|
|
numberOfEntries: 0,
|
|
entries: [
|
|
],
|
|
levelNumber: null,
|
|
levelNumbers: []
|
|
}
|
|
|
|
service.entries = [
|
|
]
|
|
|
|
service.logLevels = [
|
|
'UNKNOWN',
|
|
'DEFAULT',
|
|
'VERBOSE',
|
|
'DEBUG',
|
|
'INFO',
|
|
'WARN',
|
|
'ERROR',
|
|
'FATAL',
|
|
'SILENT'
|
|
]
|
|
|
|
var logLevelsLowerCase = _.map(service.logLevels, function (level) {
|
|
return level.toLowerCase()
|
|
})
|
|
|
|
var logLevelsCapitalized = _.map(logLevelsLowerCase, function (level) {
|
|
return _s.capitalize(level)
|
|
})
|
|
|
|
for (var i = 2; i < 8; ++i) {
|
|
service.filters.levelNumbers.push({number: i, name: logLevelsCapitalized[i]})
|
|
}
|
|
|
|
function enhanceEntry(data) {
|
|
var date = new Date(data.date * 1000)
|
|
data.dateLabel = _s.pad(date.getHours(), 2, '0') + ':' +
|
|
_s.pad(date.getMinutes(), 2, '0') + ':' +
|
|
_s.pad(date.getSeconds(), 2, '0') + '.' +
|
|
_s.pad(date.getMilliseconds(), 3, '0')
|
|
|
|
data.deviceLabel = 'Android'
|
|
|
|
data.priorityLabel = logLevelsCapitalized[data.priority]
|
|
|
|
return data
|
|
}
|
|
|
|
socket.on('logcat.entry', function (data) {
|
|
service.numberOfEntries++
|
|
|
|
service.entries.push(enhanceEntry(data))
|
|
|
|
if (true) {
|
|
service.addEntryListener(data)
|
|
}
|
|
})
|
|
|
|
service.clear = function () {
|
|
service.numberOfEntries = 0
|
|
service.entries = []
|
|
}
|
|
|
|
return service
|
|
}
|