Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Gelöst] Adapter mit aktiven Log Transporter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Adapter mit aktiven Log Transporter

    This topic has been deleted. Only users with topic management privileges can see it.
    • IdleBit
      IdleBit last edited by IdleBit

      Hi,

      ich bin grade dabei mir ein kleinen Adapter zu Bauen mit dem ich die ioBroker Logs ins Seq pumpen kann.
      Und habe mir auch schon die Hilfe zu Log Transporter durchgelesen, aber komme nun nicht weiter.

      Der Adapter ist nach den aktuellen Template erstellt und nun habe ich das Problem das ich das

      requireLog(true)
      

      nicht wie erwartet setzten kann ....

      class Seq extends utils.Adapter {
      
          constructor(options) {
              super({
                  ...options,
                  name: 'seq',
              });
      
              this.requireLog(true);
              this.on('ready', this.onReady.bind(this));
              this.on('unload', this.onUnload.bind(this));
              this.on('log', this.onLog.bind(this));
          }  
          .............
      

      Hat da wer ein Tip für mich?

      apollon77 Mic 2 Replies Last reply Reply Quote 0
      • apollon77
        apollon77 @IdleBit last edited by

        @IdleBit sagte in Adapter mit aktiven Log Transporter:

        nicht wie erwartet setzten kann ....

        Was heisst das genau? Bekommst Du einen Fehler oder was ist?

        IdleBit 1 Reply Last reply Reply Quote 0
        • IdleBit
          IdleBit @apollon77 last edited by

          @apollon77 said in Adapter mit aktiven Log Transporter:

          Was heisst das genau? Bekommst Du einen Fehler oder was ist?

          TypeError: this.requireLog is not a function

          seq.0	2020-09-05 14:14:40.717	warn	(20750) Terminated (UNCAUGHT_EXCEPTION): Without reason
          seq.0	2020-09-05 14:14:40.298	info	(20750) starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.seq, node: v12.18.3, js-controller: 3.1.6
          host.iobroker	2020-09-05 14:14:39.287	info	instance system.adapter.seq.0 started with pid 20750
          host.iobroker	2020-09-05 14:14:09.241	info	Restart adapter system.adapter.seq.0 because enabled
          host.iobroker	2020-09-05 14:14:09.241	error	instance system.adapter.seq.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
          seq.0	2020-09-05 14:14:08.704	warn	(20731) Terminated (UNCAUGHT_EXCEPTION): Without reason
          seq.0	2020-09-05 14:14:08.156	info	(20731) starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.seq, node: v12.18.3, js-controller: 3.1.6
          seq.0	2020-09-05 14:14:07.700	error	at internal/main/run_main_module.js:17:47
          seq.0	2020-09-05 14:14:07.700	error	at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
          seq.0	2020-09-05 14:14:07.700	error	at Function.Module._load (internal/modules/cjs/loader.js:878:14)
          seq.0	2020-09-05 14:14:07.700	error	at Module.load (internal/modules/cjs/loader.js:985:32)
          seq.0	2020-09-05 14:14:07.700	error	at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
          seq.0	2020-09-05 14:14:07.700	error	at Module._compile (internal/modules/cjs/loader.js:1137:30)
          seq.0	2020-09-05 14:14:07.700	error	at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.seq/main.js:122:5)
          seq.0	2020-09-05 14:14:07.700	error	at new Seq (/opt/iobroker/node_modules/iobroker.seq/main.js:22:14)
          seq.0	2020-09-05 14:14:07.700	error	(20731) TypeError: this.requireLog is not a function
          seq.0	2020-09-05 14:14:07.699	error	(20731) uncaught exception: this.requireLog is not a function
          host.iobroker	2020-09-05 14:14:07.275	info	instance system.adapter.seq.0 started with pid 20731
          host.iobroker	2020-09-05 14:13:37.249	info	Restart adapter system.adapter.seq.0 because enabled
          host.iobroker	2020-09-05 14:13:37.249	error	instance system.adapter.seq.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
          
          apollon77 1 Reply Last reply Reply Quote 0
          • apollon77
            apollon77 @IdleBit last edited by apollon77

            @IdleBit Ist das korrekt?

            To activate in your adapter, add "logTransporter": true to the common structure of your io-package.json.

            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 steht

            Mic IdleBit 2 Replies Last reply Reply Quote 1
            • Mic
              Mic Developer @apollon77 last edited by

              @IdleBit
              Kannst dir mal https://github.com/Mic-M/ioBroker.logparser ansehen, dort habe ich den Log Transporter umgesetzt. 😉
              In io-package.json
              Und hier in der main.js: function subscribeToAdapterLogs()
              748059a2-e15e-4bca-8db0-7003bf8324ea-image.png

              1 Reply Last reply Reply Quote 0
              • Mic
                Mic Developer @IdleBit last edited by

                @IdleBit sagte in Adapter mit aktiven Log Transporter:

                ich bin grade dabei mir ein kleinen Adapter zu Bauen mit dem ich die ioBroker Logs ins Seq pumpen kann.

                BTW, sehr interessantes Vorhaben von dir 😎
                Sag Bescheid, falls sich da ggf. Synergien zum Log Parser Adapter ergeben.

                1 Reply Last reply Reply Quote 0
                • IdleBit
                  IdleBit @apollon77 last edited by

                  @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 steht

                  Ja 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 😄

                  IdleBit 1 Reply Last reply Reply Quote 0
                  • IdleBit
                    IdleBit @IdleBit last edited by

                    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 🙂
                    db134285-46b9-4cd8-a9cd-39c359afb506-image.png

                    Mic 1 Reply Last reply Reply Quote 0
                    • Mic
                      Mic Developer @IdleBit last edited by

                      @IdleBit

                      Hast du geprüft, dass "logTransporter": true im 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?

                      IdleBit 1 Reply Last reply Reply Quote 0
                      • IdleBit
                        IdleBit @Mic last edited by

                        @Mic sagte in Adapter mit aktiven Log Transporter:

                        @IdleBit

                        Hast du geprüft, dass "logTransporter": true im 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! 😄

                        Mic 2 Replies Last reply Reply Quote 0
                        • Mic
                          Mic Developer @IdleBit last edited by

                          @IdleBit sagte in Adapter mit aktiven Log Transporter:

                          Ja ich bin der Meinung:
                          https://github.com/o0shojo0o/ioBroker.seq/blob/master/io-package.json#L53

                          Sieht gut aus.

                          In deiner main.js:
                          Du hast this.requireLog(true) im constructor der Adapter-Klasse, schieb das mal in die onReady()-Funktion, dort als erste Zeile.

                          IdleBit 1 Reply Last reply Reply Quote 0
                          • Mic
                            Mic Developer @IdleBit last edited by Mic

                            @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! 😄

                            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 1 Reply Last reply Reply Quote 0
                            • IdleBit
                              IdleBit @Mic last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • IdleBit
                                IdleBit @IdleBit last edited by

                                So Problem behoben nochmals Danke @Dutchman für den kleinen Exkurs 😉
                                Das this.requireLog(true); gehört in der onReady() Funktion.

                                Dutchman apollon77 2 Replies Last reply Reply Quote 0
                                • IdleBit
                                  IdleBit @Mic last edited by

                                  @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#L53

                                  Sieht gut aus.

                                  In deiner main.js:
                                  Du hast this.requireLog(true) im constructor der Adapter-Klasse, schieb das mal in die onReady()-Funktion, dort als erste Zeile.

                                  Och nöööööö, das habe ich ja total überlesen.... da war ja schon die Lösung! 🤦‍♂️

                                  1 Reply Last reply Reply Quote 0
                                  • Dutchman
                                    Dutchman Developer Most Active Administrators @IdleBit last edited by

                                    @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.

                                    👍 und direkt Debugger gelernt 😁

                                    @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!

                                    😂 🤐

                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 @IdleBit last edited by

                                      @IdleBit sagte in [Gelöst] Adapter mit aktiven Log Transporter:

                                      Das this.requireLog(true); gehört in der onReady() Funktion.

                                      exakt!

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      837
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      help wanted log transporter
                                      4
                                      17
                                      913
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo