Add an example of how to send logs from server to client

pull/2144/head
Rodrigo Nascimento 9 years ago
parent 5a0af98e12
commit a970502d29
  1. 41
      packages/rocketchat-logger/ansispan.js
  2. 8
      packages/rocketchat-logger/logger.coffee
  3. 1
      packages/rocketchat-logger/package.js
  4. 10
      packages/rocketchat-logger/server.coffee

@ -0,0 +1,41 @@
ansispan = function (str) {
Object.keys(ansispan.foregroundColors).forEach(function (ansi) {
var span = '<span style="color: ' + ansispan.foregroundColors[ansi] + '">';
//
// `\033[Xm` == `\033[0;Xm` sets foreground color to `X`.
//
str = str.replace(
new RegExp('\033\\[' + ansi + 'm', 'g'),
span
).replace(
new RegExp('\033\\[0;' + ansi + 'm', 'g'),
span
);
});
//
// `\033[1m` enables bold font, `\033[22m` disables it
//
str = str.replace(/\033\[1m/g, '<b>').replace(/\033\[22m/g, '</b>');
//
// `\033[3m` enables italics font, `\033[23m` disables it
//
str = str.replace(/\033\[3m/g, '<i>').replace(/\033\[23m/g, '</i>');
str = str.replace(/\033\[m/g, '</span>');
str = str.replace(/\033\[0m/g, '</span>');
return str.replace(/\033\[39m/g, '</span>');
};
ansispan.foregroundColors = {
'30': 'black',
'31': 'red',
'32': 'green',
'33': 'yellow',
'34': 'blue',
'35': 'purple',
'36': 'cyan',
'37': 'white'
};

@ -63,3 +63,11 @@ wrapLifeCycle = (original, prefix, color) ->
Template.prototype.onCreated = wrapLifeCycle Template.prototype.onCreated, 'onCreated', 'blue'
Template.prototype.onRendered = wrapLifeCycle Template.prototype.onRendered, 'onRendered', 'green'
Template.prototype.onDestroyed = wrapLifeCycle Template.prototype.onDestroyed, 'onDestroyed', 'red'
# stdout = new Meteor.Collection 'stdout'
# Meteor.subscribe 'stdout'
# stdout.find().observe
# added: (record) ->
# console.log ansispan record.string

@ -15,6 +15,7 @@ Package.onUse(function(api) {
api.use('raix:eventemitter');
api.use('templating', 'client', {weak: true});
api.addFiles('ansispan.js', 'client');
api.addFiles('logger.coffee', 'client');
api.addFiles('server.coffee', 'server');

@ -160,3 +160,13 @@
options.arguments.unshift @getPrefix(options)
console.log.apply console, options.arguments
# Meteor.publish 'stdout', ->
# write = process.stdout.write
# process.stdout.write = (string, encoding, fd) =>
# write.apply(process.stdout, arguments)
# id = Random.id()
# @added 'stdout', id, {string: string}
# @removed 'stdout', id
# @ready()

Loading…
Cancel
Save