From d99adb1314e073733a43491ef09da3b6d3d9ea16 Mon Sep 17 00:00:00 2001
From: Dominik Sigmund <dominik.sigmund@br.de>
Date: Thu, 7 May 2020 15:25:08 +0200
Subject: [PATCH] Added better graylog lib

---
 index.js          | 31 +++++++++++++++++++------------
 package-lock.json | 28 +++++++++++++++++++---------
 package.json      |  4 ++--
 3 files changed, 40 insertions(+), 23 deletions(-)

diff --git a/index.js b/index.js
index 86b9f5d..87f9c56 100644
--- a/index.js
+++ b/index.js
@@ -44,11 +44,10 @@ function Log (options) {
     }
   }
   if (this.options.graylog && this.options.graylog.active) {
-    this.graylog2 = require('graylog2')
-    this.graylogger = new this.graylog2.graylog({ // eslint-disable-line new-cap
-      servers: this.options.graylog.servers,
-      hostname: this.hostname,
-      facility: this.name
+    this.graylog = require('gelf')
+    this.graylogger = new this.graylog({ // eslint-disable-line new-cap
+      graylogHostname: this.options.graylog.servers[0].host,
+      graylogPort: this.options.graylog.servers[0].port
     })
   }
 
@@ -128,25 +127,25 @@ function Log (options) {
     if (this.options.graylog && this.options.graylog.active) {
       switch (tag) {
         case 'INFO':
-          this.graylogger.info(message)
+          this.graylogEmit(message, 1)
           break
         case 'NOTICE':
-          this.graylogger.notice(message)
+          this.graylogEmit(message, 2)
           break
         case 'WARN':
-          this.graylogger.warning(message)
+          this.graylogEmit(message, 3)
           break
         case 'ERROR':
-          this.graylogger.error(message)
+          this.graylogEmit(message, 4)
           break
         case 'FATAL':
-          this.graylogger.critical(message)
+          this.graylogEmit(message, 5)
           break
         case 'DEBUG':
-          this.graylogger.debug(message)
+          this.graylogEmit(message, 0)
           break
         default:
-          this.graylogger.notice(message)
+          this.graylogEmit(message, 1)
       }
     }
     return msg
@@ -156,6 +155,14 @@ function Log (options) {
     var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1)
     return localISOTime.split('.')[0].trim()
   }
+  this.graylogEmit = function (message, level) {
+    gelf.emit('gelf.log', {
+      "short_message": message,
+      "timestamp": Date.now() / 1000,
+      "level": level,
+      "facility": this.name,
+    })
+  }
   return this
 }
 module.exports = Log
diff --git a/package-lock.json b/package-lock.json
index b57ff8f..9d34ba3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
-  "name": "@br/log",
-  "version": "2.0.2",
+  "name": "@plastdev/log",
+  "version": "2.1.2",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -851,6 +851,14 @@
       "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
       "dev": true
     },
+    "async": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+      "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+      "requires": {
+        "lodash": "^4.17.14"
+      }
+    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -1756,6 +1764,14 @@
       "dev": true,
       "optional": true
     },
+    "gelf": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/gelf/-/gelf-2.0.1.tgz",
+      "integrity": "sha512-77duTNPkUgcwFRl+kbmPx2YGMF4e030xBVVsKix5mruTAjuROW36WxmpVSk8MkiZC1D68JYNNb+kfJeZG/D5VQ==",
+      "requires": {
+        "async": "^2.5.0"
+      }
+    },
     "gensync": {
       "version": "1.0.0-beta.1",
       "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
@@ -1818,11 +1834,6 @@
       "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
       "dev": true
     },
-    "graylog2": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/graylog2/-/graylog2-0.2.1.tgz",
-      "integrity": "sha512-vjysakwOhrAqMeIvSK0WZcmzKvkpxY6pCfT9QqtdSVAidPFIynuin7adqbdFp9MCCTbTE402WIxvg8cph5OWTA=="
-    },
     "growly": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
@@ -2820,8 +2831,7 @@
     "lodash": {
       "version": "4.17.15",
       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
-      "dev": true
+      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
     },
     "lodash.sortby": {
       "version": "4.7.0",
diff --git a/package.json b/package.json
index e55c3e7..fc42b03 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@plastdev/log",
-  "version": "2.0.2",
+  "version": "2.1.2",
   "description": "A simple Logger with Options!",
   "main": "index.js",
   "scripts": {
@@ -13,7 +13,7 @@
     "url": "https://gitlab.br.de/general/log"
   },
   "dependencies": {
-    "graylog2": "^0.2.1"
+    "gelf": "^2.0.1"
   },
   "devDependencies": {
     "jest": "^25.3.0"
-- 
GitLab