Search code examples
loggingclojuretimbre

Why are my Graylog messages using the taoensso.timbre.appenders.3rd-party.gelf appender in Clojure not human readable?


I am using [com.taoensso/timbre "4.10.0"] in Clojure 1.9.0 with Java 1.8.

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

I have configured timbre with the following function:

(defn init [config]
  (timbre/merge-config! {:level        :debug
                         :appenders    {:println (appenders/println-appender)
                                        :spit    (appenders/spit-appender {:fname "log/myapp.log" :append? true})
                                        :gelf    (gelf/gelf-appender (:gelf-host config) (:gelf-port config) (:gelf-protocol config))}})))

I am sending data across :udp and the data seems to be compressed or encoded or something. I don't see any options in the appender that allows me to configure compression.

Do you know of anything that I need to configure in order for my Graylog messages to be readable when sent over upd? I have tried sending the messages over tcp and somehow the packets are lost after I have sent them even though I have a TCP input on port 1514.

The messages printed to the console and the log files are all fine.

enter image description here


Solution

  • The problem is that you are using the syslog/udp port and not the gelf/udp input port; typically the gelf port is 12201 you can check your input configuration by going to system->inputs in the UI.

    BTW, you dont need to specify :udp for the gelf appender as that is the default in timbre.