Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

logging adapted to work with logstash setup (whiner-slf4j) #189

Merged
merged 2 commits into from Jul 19, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 2 additions & 3 deletions project.clj
@@ -1,4 +1,4 @@
(def slf4j-version "1.7.12")
(def slf4j-version "1.7.21")
(def cider-nrepl-version "0.9.1")

(defproject witan.app "0.1.18-SNAPSHOT"
Expand All @@ -24,11 +24,10 @@
[kixi/schema-contrib "0.2.0"]
[kixi/compojure-api "0.24.0"]
[org.clojure/tools.logging "0.3.1"]
[ch.qos.logback/logback-classic "1.1.3"]
[ch.qos.logback/logback-classic "1.1.7"]
[org.slf4j/jul-to-slf4j ~slf4j-version]
[org.slf4j/jcl-over-slf4j ~slf4j-version]
[org.slf4j/log4j-over-slf4j ~slf4j-version]
[net.logstash.logback/logstash-logback-encoder "4.6"]
[javax.mail/mail "1.4.7"]
[overtone/at-at "1.2.0"]
[com.amazonaws/aws-java-sdk "1.10.27"]
Expand Down
15 changes: 3 additions & 12 deletions resources/logback.xml
Expand Up @@ -4,29 +4,20 @@
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appName": "witan-app"}</customFields>
<encoder>
<pattern>%date{ISO8601} %-5level %logger{36} - %msg%n</pattern>
</encoder>

<!-- Only log level INFO and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>

<!-- removed mail appender for now, see https://github.com/MastodonC/an-media.loader/blob/master/resources/logback.xml for example -->

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>LOCAL0</facility>
<suffixPattern>%logger{35} %X{pipejine.q} - %message%n</suffixPattern>
</appender>

<!-- Enable FILE and STDOUT appenders for all log messages.
By default, only log at level INFO and above. -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<!-- appender-ref ref="EMAIL" / -->
<appender-ref ref="SYSLOG" />
</root>

<logger name="com" level="INFO" />
Expand Down
24 changes: 18 additions & 6 deletions src/witan/app/handler.clj
Expand Up @@ -22,6 +22,7 @@
[witan.app.schema :as w]
[compojure.api.sweet :as sweet]
[compojure.api.upload :as upload]
[compojure.api.exception :as exception]
[ring.util.http-response :refer :all]
[clj-time.core :as t]
[overtone.at-at :as at]))
Expand Down Expand Up @@ -102,7 +103,17 @@
(println "RESOURCE: " result)
result))

(defn logging-handler [^Exception e data request]
(log/error e)
(internal-server-error {:message (.getMessage e)}))

(defn schema-logging-handler [^Exception e data request]
(log/error e)
(exception/schema-error-handler e data request))

(sweet/defapi app'
{:exceptions {:handlers {:compojure.api.exception/default logging-handler
:compojure.api.exception/response-validation schema-logging-handler}}}
(sweet/swagger-ui)
(sweet/swagger-docs
{:info {:title "Witan API"
Expand Down Expand Up @@ -234,9 +245,10 @@
response)))

;; the Ring app definition including the authentication backend
(def app (-> app'
(wrap-authorization auth-backend)
(wrap-authentication auth-backend)
(wrap-cors :access-control-allow-origin [#".*"]
:access-control-allow-methods [:get :put :post :delete])
(wrap-logger)))
(def app
(-> app'
(wrap-authorization auth-backend)
(wrap-authentication auth-backend)
(wrap-cors :access-control-allow-origin [#".*"]
:access-control-allow-methods [:get :put :post :delete])
(wrap-logger)))
12 changes: 5 additions & 7 deletions src/witan/bootstrap.clj
Expand Up @@ -8,12 +8,6 @@
[clojure.tools.nrepl.server :as nrepl-server]
[com.stuartsierra.component :as component]))

;; See http://stuartsierra.com/2015/05/27/clojure-uncaught-exceptions
(defn install-default-exception-handler []
(Thread/setDefaultUncaughtExceptionHandler
(reify Thread$UncaughtExceptionHandler
(uncaughtException [_ thread ex]
(log/error ex "Uncaught exception on " (.getName thread))))))

(defrecord ReplServer [config]
component/Lifecycle
Expand Down Expand Up @@ -50,6 +44,10 @@
(println banner)
(System/exit 0))

(install-default-exception-handler)
;; See http://stuartsierra.com/2015/05/27/clojure-uncaught-exceptions
(Thread/setDefaultUncaughtExceptionHandler
(reify Thread$UncaughtExceptionHandler
(uncaughtException [_ thread ex]
(log/error ex "Uncaught exception on" (.getName thread)))))

(alter-var-root #'witan.application/system (fn [_] (component/start (build-application opts))))))
1 change: 1 addition & 0 deletions src/witan/system.clj
Expand Up @@ -7,6 +7,7 @@
[witan.app.config :as conf]
[witan.app.components.kafka :as kafka]))


(defrecord JettyServer [handler port]
component/Lifecycle
(start [this]
Expand Down