NEWS
[Gelöst] Adapter mit aktiven Log Transporter
-
@apollon77 said in Adapter mit aktiven Log Transporter:
wenn ja hast Du nach dem einbau davon einmal "iobroker upload meinadaptername" gemacht?
Die Funktion wird nur definiert wenn es auch in der io-package korrekr stehtJa das habe ich beides so gemacht.
@Mic said in Adapter mit aktiven Log Transporter:
@IdleBit
Kannst dir mal https://github.com/Mic-M/ioBroker.logparser ansehen, dort habe ich den Log Transporter umgesetzt. ;)Hehe, hatte ich schon längste bei dir abgeschaut :D
Ich habe das mal als Script umgesetzt, das würde eingleich reichen.
Allerdings würde ich es doch am liebsten als Adapter umsetzten.const seq = require('seq-logging'); const logger = new seq.Logger({serverUrl: 'http://192.168.0.251:5000'}); onLog('silly', data => { const message = ExtractMessage (data.message); SeqLog('Verbose', data.from, message) }); onLog('debug', data => { const message = ExtractMessage (data.message); SeqLog('Debug', data.from, message) }); onLog('info', data => { const message = ExtractMessage (data.message); SeqLog('Information', data.from, message) }); onLog('warn', data => { const message = ExtractMessage (data.message); SeqLog('Warning', data.from, message) }); onLog('error', data => { const message = ExtractMessage (data.message); SeqLog('Error', data.from, message) }); function SeqLog(logLevel, source, message) { logger.emit({ timestamp: message.timestamp, level: logLevel, messageTemplate: '{Source}: ' + message, properties: { Application: 'ioBroker', Source: source } }); } function ExtractMessage (inMessage) { const index = Object.values(IndexesOf(inMessage, / /g))[0][1]; const message = inMessage.substring(index); return message; } function IndexesOf(string, regex) { let match, indexes = {}; regex = new RegExp(regex); while (match = regex.exec(string)) { if (!indexes[match[0]]) indexes[match[0]] = []; indexes[match[0]].push(match.index); } return indexes; }Hier mal eine Ausgabe von den Warn, Error und Info Events in Seq :)

-
Ich habe das mal als Script umgesetzt, das würde eingleich reichen.
Allerdings würde ich es doch am liebsten als Adapter umsetzten.const seq = require('seq-logging'); const logger = new seq.Logger({serverUrl: 'http://192.168.0.251:5000'}); onLog('silly', data => { const message = ExtractMessage (data.message); SeqLog('Verbose', data.from, message) }); onLog('debug', data => { const message = ExtractMessage (data.message); SeqLog('Debug', data.from, message) }); onLog('info', data => { const message = ExtractMessage (data.message); SeqLog('Information', data.from, message) }); onLog('warn', data => { const message = ExtractMessage (data.message); SeqLog('Warning', data.from, message) }); onLog('error', data => { const message = ExtractMessage (data.message); SeqLog('Error', data.from, message) }); function SeqLog(logLevel, source, message) { logger.emit({ timestamp: message.timestamp, level: logLevel, messageTemplate: '{Source}: ' + message, properties: { Application: 'ioBroker', Source: source } }); } function ExtractMessage (inMessage) { const index = Object.values(IndexesOf(inMessage, / /g))[0][1]; const message = inMessage.substring(index); return message; } function IndexesOf(string, regex) { let match, indexes = {}; regex = new RegExp(regex); while (match = regex.exec(string)) { if (!indexes[match[0]]) indexes[match[0]] = []; indexes[match[0]].push(match.index); } return indexes; }Hier mal eine Ausgabe von den Warn, Error und Info Events in Seq :)

-
Hast du geprüft, dass
"logTransporter": trueim korrekten Zweig der io-package.json ist?Seq sieht sehr interessant aus, hab ich noch nicht gekannt. Wozu nutzt du es denn sonst noch so?
@Mic sagte in Adapter mit aktiven Log Transporter:
Hast du geprüft, dass
"logTransporter": trueim korrekten Zweig der io-package.json ist?Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53@Mic sagte in Adapter mit aktiven Log Transporter:
@IdleBit
Seq sieht sehr interessant aus, hab ich noch nicht gekannt. Wozu nutzt du es denn sonst noch so?Seq setzte ich soweit es geht für alles ein was Logs schmeißt :)
Auf jeden Fall für alle meine selbst geschrieben Programme, denn so ein Programm übergreifendes Log ein einfach ein feuchter Traum! :D
-
@Mic sagte in Adapter mit aktiven Log Transporter:
Hast du geprüft, dass
"logTransporter": trueim korrekten Zweig der io-package.json ist?Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53@Mic sagte in Adapter mit aktiven Log Transporter:
@IdleBit
Seq sieht sehr interessant aus, hab ich noch nicht gekannt. Wozu nutzt du es denn sonst noch so?Seq setzte ich soweit es geht für alles ein was Logs schmeißt :)
Auf jeden Fall für alle meine selbst geschrieben Programme, denn so ein Programm übergreifendes Log ein einfach ein feuchter Traum! :D
@IdleBit sagte in Adapter mit aktiven Log Transporter:
Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53Sieht gut aus.
In deiner main.js:
Du hastthis.requireLog(true)im constructor der Adapter-Klasse, schieb das mal in dieonReady()-Funktion, dort als erste Zeile. -
@Mic sagte in Adapter mit aktiven Log Transporter:
Hast du geprüft, dass
"logTransporter": trueim korrekten Zweig der io-package.json ist?Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53@Mic sagte in Adapter mit aktiven Log Transporter:
@IdleBit
Seq sieht sehr interessant aus, hab ich noch nicht gekannt. Wozu nutzt du es denn sonst noch so?Seq setzte ich soweit es geht für alles ein was Logs schmeißt :)
Auf jeden Fall für alle meine selbst geschrieben Programme, denn so ein Programm übergreifendes Log ein einfach ein feuchter Traum! :D
@IdleBit sagte in Adapter mit aktiven Log Transporter:
Seq setzte ich soweit es geht für alles ein was Logs schmeißt :)
Auf jeden Fall für alle meine selbst geschrieben Programme, denn so ein Programm übergreifendes Log ein einfach ein feuchter Traum! :D
Cool. Wohl auch als Developer sehr sinnvoll, oder? Muss ich mir echt mal näher ansehen.
Nachtrag:
Hmm, aber da braucht unter Linux Docker, oder? Also nicht einfach zu installieren auf einer Linux-Instanz (z.B. Proxmox VM / Container)? -
@IdleBit sagte in Adapter mit aktiven Log Transporter:
Seq setzte ich soweit es geht für alles ein was Logs schmeißt :)
Auf jeden Fall für alle meine selbst geschrieben Programme, denn so ein Programm übergreifendes Log ein einfach ein feuchter Traum! :D
Cool. Wohl auch als Developer sehr sinnvoll, oder? Muss ich mir echt mal näher ansehen.
Nachtrag:
Hmm, aber da braucht unter Linux Docker, oder? Also nicht einfach zu installieren auf einer Linux-Instanz (z.B. Proxmox VM / Container)?@Mic sagte in Adapter mit aktiven Log Transporter:
Nachtrag:
Hmm, aber da braucht unter Linux Docker, oder? Also nicht einfach zu installieren auf einer Linux-Instanz (z.B. Proxmox VM / Container)?Tatsächlich nutze ich @work einen Windows Server und @ home/RootServer Docker unter Linux
-
@Mic sagte in Adapter mit aktiven Log Transporter:
Nachtrag:
Hmm, aber da braucht unter Linux Docker, oder? Also nicht einfach zu installieren auf einer Linux-Instanz (z.B. Proxmox VM / Container)?Tatsächlich nutze ich @work einen Windows Server und @ home/RootServer Docker unter Linux
-
@IdleBit sagte in Adapter mit aktiven Log Transporter:
Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53Sieht gut aus.
In deiner main.js:
Du hastthis.requireLog(true)im constructor der Adapter-Klasse, schieb das mal in dieonReady()-Funktion, dort als erste Zeile.@Mic sagte in [Gelöst] Adapter mit aktiven Log Transporter:
@IdleBit sagte in Adapter mit aktiven Log Transporter:
Ja ich bin der Meinung:
https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53Sieht gut aus.
In deiner main.js:
Du hastthis.requireLog(true)im constructor der Adapter-Klasse, schieb das mal in dieonReady()-Funktion, dort als erste Zeile.Och nöööööö, das habe ich ja total überlesen.... da war ja schon die Lösung! :man-facepalming:
-
So Problem behoben nochmals Danke @Dutchman für den kleinen Exkurs ;)
Das this.requireLog(true); gehört in der onReady() Funktion.@IdleBit sagte in [Gelöst] Adapter mit aktiven Log Transporter:
So Problem behoben nochmals Danke @Dutchman für den kleinen Exkurs ;)
Das this.requireLog(true); gehört in der onReady() Funktion.:+1: und direkt Debugger gelernt :grin:
@IdleBit sagte in [Gelöst] Adapter mit aktiven Log Transporter:
Och nöööööö, das habe ich ja total überlesen.... da war ja schon die Lösung!
:joy: :zipper_mouth_face:
-
So Problem behoben nochmals Danke @Dutchman für den kleinen Exkurs ;)
Das this.requireLog(true); gehört in der onReady() Funktion.