diff --git a/README.md b/README.md
index a22814a534193e264f742c1a94724ab81b7c904b..945bf0e219bb35ed249fb68ac88d6958f18ca2c0 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,3 @@ Note: The options Part may be omitted, as all parts are optional, but using the
   loglevel: 'Minimal LogLevel. Default: WARN'
 }
 ```
-
-## Graylog
-
-To use graylog, your graylog-server needs to have an http-input setup.
diff --git a/examples/log-to-graylog.js b/examples/log-to-graylog.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c3f07ff7c772c2db27837091fe1d1b037288d26
--- /dev/null
+++ b/examples/log-to-graylog.js
@@ -0,0 +1,18 @@
+const Log = require('../index.js')
+
+let log = new Log({
+  name: 'Sample-Application',
+  hostname: 'test-server',
+  graylog: {
+    active: true,
+    server: 'localhost',
+    port: 9999
+  }
+})
+
+log.info('This is an Information')
+log.notice('This is a Notice')
+log.warn('This is a Warning')
+log.error('This is an Error')
+log.fatal('This is a Fatal Message')
+log.debug('This is a Debug Message')
diff --git a/examples/udp-server.js b/examples/udp-server.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab9d442ebfe9514cf893d41b0269ec29c685ece4
--- /dev/null
+++ b/examples/udp-server.js
@@ -0,0 +1,32 @@
+var udp = require('dgram')
+var server = udp.createSocket('udp4')
+
+// emits when any error occurs
+server.on('error',function(error){
+  console.log('Error: ' + error)
+  server.close()
+})
+
+// emits on new datagram msg
+server.on('message',function(msg,info){
+  console.log('Data received from client : ' + msg.toString())
+  console.log('Received %d bytes from %s:%d\n',msg.length, info.address, info.port)
+})
+
+//emits when socket is ready and listening for datagram msgs
+server.on('listening',function(){
+  var address = server.address()
+  var port = address.port
+  var family = address.family
+  var ipaddr = address.address
+  console.log('Server is listening at port' + port)
+  console.log('Server ip :' + ipaddr)
+  console.log('Server is IP4/IP6 : ' + family)
+});
+
+//emits after the socket is closed using socket.close()
+server.on('close',function(){
+  console.log('Socket is closed !')
+})
+
+server.bind(9999);
\ No newline at end of file
diff --git a/index.js b/index.js
index a74a12a020b88f70e7e82ef1b51aae7eb551e759..2565dfc56b09c369b7a29af0564bd3bc3a4e93d9 100644
--- a/index.js
+++ b/index.js
@@ -25,7 +25,8 @@ function Log (options) {
     this.hostname = os.hostname()
   }
   if (this.options.graylog && this.options.graylog.active) {
-    this.http = require('http')
+    this.udp = require('dgram')
+    this.udpclient = this.udp.createSocket('udp4')
   }
   if (this.options.file) {
     this.fs = require('fs')
@@ -126,21 +127,11 @@ function Log (options) {
         facility: this.name,
         level: tag
         })
-      let options = {
-          hostname: this.options.graylog.server,
-          port: this.options.graylog.port,
-          path: '/gelf',
-          method: 'POST',
-          headers: {
-            'Content-Type': 'application/json',
-            'Content-Length': data.length
-          }
+      this.udpclient.send(Buffer.from(data),this.options.graylog.port,this.options.graylog.server,function(error){
+        if(error){
+          console.error(error)
         }
-      var post = this.http.request(options)
-    
-      // post the data
-      post.write(data)
-      post.end()
+      })
     }
     return msg
   }