Browse Source

Merge pull request #553 from gre/better-logger

Better logger: DEBUG_COMMANDS DEBUG_DB
master
Meriadec Pillet 7 years ago
committed by GitHub
parent
commit
e5585079b0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      src/helpers/db.js
  2. 6
      src/helpers/ipc.js
  3. 33
      src/logger.js

13
src/helpers/db.js

@ -1,5 +1,6 @@
// @flow
import logger from 'logger'
import Store from 'electron-store'
import set from 'lodash/set'
import get from 'lodash/get'
@ -54,37 +55,31 @@ export default {
get: (key: DBKey, defaults: any): any => {
const db = store(key)
const data = db.get('data', defaults)
logger.onDB('read', key, data)
return middleware('get', key, data)
},
set: (key: DBKey, val: any) => {
const db = store(key)
val = middleware('set', key, val)
logger.onDB('write', key, val)
db.set('data', val)
return val
},
getIn: (key: DBKey, path: string, defaultValue: any) => {
const db = store(key)
let data = db.get('data')
data = middleware('get', key, data)
return get(data, path, defaultValue)
},
setIn: (key: DBKey, path: string, val: any) => {
const db = store(key)
const data = db.get('data')
val = middleware('set', key, val)
set(data, path, val)
db.set('data', data)
return val
},
@ -93,6 +88,7 @@ export default {
const keys = ['countervalues']
keys.forEach(k => {
const db = store(k)
logger.onDB('clear', k)
db.clear()
})
},
@ -101,6 +97,7 @@ export default {
const keys = ['settings', 'accounts', 'countervalues']
keys.forEach(k => {
const db = store(k)
logger.onDB('clear', k)
db.clear()
})
},

6
src/helpers/ipc.js

@ -47,22 +47,20 @@ function ipcRendererSendCommand<In, A>(id: string, data: In): Observable<A> {
function handleCommandEvent(e, msg: Msg<A>) {
if (requestId !== msg.requestId) return
logger.onCmd(msg.type, id, Date.now() - startTime, msg.data)
switch (msg.type) {
case 'cmd.NEXT':
logger.log(`● CMD ${id}`, msg.data)
if (msg.data) {
o.next(msg.data)
}
break
case 'cmd.COMPLETE':
logger.log(`✔ CMD ${id} finished in ${(Date.now() - startTime).toFixed(0)}ms`)
o.complete()
ipcRenderer.removeListener('command-event', handleCommandEvent)
break
case 'cmd.ERROR':
logger.warn(`✖ CMD ${id} error`, msg.data)
o.error(msg.data)
ipcRenderer.removeListener('command-event', handleCommandEvent)
break
@ -75,7 +73,7 @@ function ipcRendererSendCommand<In, A>(id: string, data: In): Observable<A> {
ipcRenderer.send('command', { id, data, requestId })
logger.log(`CMD ${id}.send(`, data, ')')
logger.onCmd('cmd.START', id, 0, data)
return unsubscribe
})

33
src/logger.js

@ -47,10 +47,41 @@ const makeSerializableLog = (o: mixed) => {
return String(o)
}
const logCmds = !__DEV__ || process.env.DEBUG_COMMANDS
const logDb = !__DEV__ || process.env.DEBUG_DB
const logRedux = !__DEV__ || process.env.DEBUG_ACTION
const logTabkey = __DEV__ || process.env.DEBUG_TAB_KEY
const logTabkey = !__DEV__ || process.env.DEBUG_TAB_KEY
export default {
onCmd: (type: string, id: string, spentTime: number, data?: any) => {
if (logCmds) {
switch (type) {
case 'cmd.START':
console.log(`CMD ${id}.send(`, data, ')')
break
case 'cmd.NEXT':
console.log(`● CMD ${id}`, data)
break
case 'cmd.COMPLETE':
console.log(`✔ CMD ${id} finished in ${spentTime.toFixed(0)}ms`)
break
case 'cmd.ERROR':
console.warn(`✖ CMD ${id} error`, data)
break
default:
}
}
addLog('cmd', type, id, spentTime, data)
},
onDB: (way: 'read' | 'write' | 'clear', name: string, obj: ?Object) => {
const msg = `📁 ${way} ${name}:`
if (logDb) {
console.log(msg, obj)
}
addLog('db', msg)
},
// tracks Redux actions (NB not all actions are serializable)
onReduxAction: (action: Object) => {

Loading…
Cancel
Save