From 04630fd6ad50ed2afb48faa8c21d5d308caebb54 Mon Sep 17 00:00:00 2001 From: Amit Rathore Date: Tue, 14 Jul 2009 12:03:08 -0700 Subject: [PATCH] externalizing logging, and added dependency on my clj-utils git project --- .gitmodules | 3 +++ fujure.sh | 2 +- lib/clojure/clj-utils | 1 + src/org/runa/swarmiji/client/client_core.clj | 3 ++- .../runa/swarmiji/config/system_config.clj | 9 ++++++--- src/org/runa/swarmiji/http/web_server_2.clj | 5 +++-- src/org/runa/swarmiji/monitor/recorder.clj | 16 ++++++++------- src/org/runa/swarmiji/mpi/transport.clj | 3 +-- src/org/runa/swarmiji/sevak/sevak_core.clj | 9 +++++---- .../runa/swarmiji/utils/exception_utils.clj | 17 ---------------- src/org/runa/swarmiji/utils/logger.clj | 20 ------------------- 11 files changed, 31 insertions(+), 57 deletions(-) create mode 160000 lib/clojure/clj-utils delete mode 100644 src/org/runa/swarmiji/utils/exception_utils.clj delete mode 100644 src/org/runa/swarmiji/utils/logger.clj diff --git a/.gitmodules b/.gitmodules index 6b31263..17beafc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/clojure/clj-record"] path = lib/clojure/clj-record url = git://github.com/duelinmarkers/clj-record.git +[submodule "lib/clojure/clj-utils"] + path = lib/clojure/clj-utils + url = git://github.com/amitrathore/clj-utils.git diff --git a/fujure.sh b/fujure.sh index d790346..7f3648c 100755 --- a/fujure.sh +++ b/fujure.sh @@ -30,7 +30,7 @@ echo "SWARMIJI_HOME is ${SWARMIJI_HOME}" echo "SWARMIJI_ENV is ${SWARMIJI_ENV}" swarmiji_jars="${SWARMIJI_HOME}/lib/java" -swarmiji_clj="${SWARMIJI_HOME}/src/:${SWARMIJI_HOME}/lib/clojure/clj-record/src/" +swarmiji_clj="${SWARMIJI_HOME}/src/:${SWARMIJI_HOME}/lib/clojure/clj-record/src/:${SWARMIJI_HOME}/lib/clojure/clj-utils/src/" clj_cp="." [ -f /etc/clojure.conf ] && . /etc/clojure.conf diff --git a/lib/clojure/clj-utils b/lib/clojure/clj-utils new file mode 160000 index 0000000..e57ad33 --- /dev/null +++ b/lib/clojure/clj-utils @@ -0,0 +1 @@ +Subproject commit e57ad3391711ed4f2253b50614696c436eb04077 diff --git a/src/org/runa/swarmiji/client/client_core.clj b/src/org/runa/swarmiji/client/client_core.clj index 59b94fa..4fe9431 100644 --- a/src/org/runa/swarmiji/client/client_core.clj +++ b/src/org/runa/swarmiji/client/client_core.clj @@ -2,11 +2,12 @@ (use 'org.runa.swarmiji.mpi.sevak-proxy) (use 'org.runa.swarmiji.mpi.transport) -(use 'org.runa.swarmiji.utils.logger) (use 'org.runa.swarmiji.config.system-config) (use 'org.runa.swarmiji.utils.general-utils) (require '(org.danlarkin [json :as json])) (import '(java.io StringWriter)) +(use 'org.rathore.amit.utils.config) +(use 'org.rathore.amit.utils.logger) (def WORK-REPORT "WORK_REPORT") diff --git a/src/org/runa/swarmiji/config/system_config.clj b/src/org/runa/swarmiji/config/system_config.clj index 45f73b8..a98bef7 100644 --- a/src/org/runa/swarmiji/config/system_config.clj +++ b/src/org/runa/swarmiji/config/system_config.clj @@ -18,8 +18,6 @@ (defn swarmiji-mysql-config [] (environment-specific-config-from swarmiji-mysql-configs)) -(def logfile (str ((operation-config) :logsdir) "/" *swarmiji-env* "_" (process-pid) ".log")) - (defn swarmiji-user [] ((operation-config) :swarmiji-username)) @@ -48,4 +46,9 @@ ((operation-config) :diagnostics-mode)) (defn log-to-console? [] - ((operation-config) :log-to-console)) \ No newline at end of file + ((operation-config) :log-to-console)) + +(defn config-for-rathore-utils [process-type-id] + {:log-to-console (log-to-console?) + :logs-dir ((operation-config) :logsdir) + :log-filename-prefix (str process-type-id "_" *swarmiji-env*)}) \ No newline at end of file diff --git a/src/org/runa/swarmiji/http/web_server_2.clj b/src/org/runa/swarmiji/http/web_server_2.clj index 6b97575..02279a1 100644 --- a/src/org/runa/swarmiji/http/web_server_2.clj +++ b/src/org/runa/swarmiji/http/web_server_2.clj @@ -6,12 +6,12 @@ (import '(com.sun.grizzly.util.buf ByteChunk)) (import '(java.net HttpURLConnection)) (use 'org.runa.swarmiji.utils.general-utils) -(use 'org.runa.swarmiji.utils.logger) -(use 'org.runa.swarmiji.utils.exception-utils) (require '(org.danlarkin [json :as json])) (use 'org.runa.swarmiji.config.system-config) (use 'org.runa.swarmiji.sevak.sevak-core) (use 'org.runa.swarmiji.http.helper) +(use 'org.rathore.amit.utils.config) +(use 'org.rathore.amit.utils.logger) (defn singularize-values [a-map] (if (empty? a-map) @@ -96,5 +96,6 @@ (let [gws (GrizzlyWebServer. port)] (.addGrizzlyAdapter gws (grizzly-adapter-for handler-functions-as-route-map)) (log-message "web-server-2: Using config:" (operation-config)) + (log-message "web-server-2: RabbitMQ channel:" (queue-sevak-q-name)) (log-message "Started swarmiji-http-gateway on port" port) (.start gws))) \ No newline at end of file diff --git a/src/org/runa/swarmiji/monitor/recorder.clj b/src/org/runa/swarmiji/monitor/recorder.clj index 3b0e658..8a9a68a 100644 --- a/src/org/runa/swarmiji/monitor/recorder.clj +++ b/src/org/runa/swarmiji/monitor/recorder.clj @@ -1,7 +1,8 @@ (ns org.runa.swarmiji.monitor.recorder (:use [org.runa.swarmiji.mpi.transport]) (:use [org.runa.swarmiji.config.system-config]) - (:use [org.runa.swarmiji.utils.logger]) + (:use [org.rathore.amit.utils.config]) + (:use [org.rathore.amit.utils.logger]) (:use [org.runa.swarmiji.monitor.control_message :as control-message]) (:import (java.sql Date Time))) @@ -15,10 +16,11 @@ (control-message/insert with-timestamps))) (defn start [] - (let [client (new-queue-client) - q-name (queue-diagnostics-q-name) - handler (queue-message-handler-for-function persist-message)] - (log-message "Swarmiji: Starting Control-Message-Recorder...") - (log-message "Listening on:" q-name) - (.subscribe client q-name handler))) + (binding [*rathore-utils-config* (config-for-rathore-utils "recorder")] + (let [client (new-queue-client) + q-name (queue-diagnostics-q-name) + handler (queue-message-handler-for-function persist-message)] + (log-message "Swarmiji: Starting Control-Message-Recorder...") + (log-message "Listening on:" q-name) + (.subscribe client q-name handler)))) \ No newline at end of file diff --git a/src/org/runa/swarmiji/mpi/transport.clj b/src/org/runa/swarmiji/mpi/transport.clj index 7fc222c..d6dccc8 100644 --- a/src/org/runa/swarmiji/mpi/transport.clj +++ b/src/org/runa/swarmiji/mpi/transport.clj @@ -3,8 +3,7 @@ (use 'org.runa.swarmiji.config.system-config) (require '(org.danlarkin [json :as json])) (import '(net.ser1.stomp Client Listener)) -(use 'org.runa.swarmiji.utils.exception-utils) -(use 'org.runa.swarmiji.utils.logger) +(use 'org.rathore.amit.utils.logger) (defn new-queue-client [] (Client. (queue-host) (queue-port), (queue-username) (queue-password))) diff --git a/src/org/runa/swarmiji/sevak/sevak_core.clj b/src/org/runa/swarmiji/sevak/sevak_core.clj index b16dcf1..2ce0925 100644 --- a/src/org/runa/swarmiji/sevak/sevak_core.clj +++ b/src/org/runa/swarmiji/sevak/sevak_core.clj @@ -1,13 +1,13 @@ (ns org.runa.swarmiji.sevak.sevak-core) (use 'org.runa.swarmiji.mpi.transport) -(use 'org.runa.swarmiji.utils.exception-utils) (import '(net.ser1.stomp Client Listener)) (require '(org.danlarkin [json :as json])) (use 'org.runa.swarmiji.client.client-core) (use 'org.runa.swarmiji.config.system-config) (use 'org.runa.swarmiji.utils.general-utils) -(use 'org.runa.swarmiji.utils.logger) +(use 'org.rathore.amit.utils.config) +(use 'org.rathore.amit.utils.logger) (def sevaks (ref {})) (def swarmiji-bindings (ref {})) @@ -54,7 +54,8 @@ (defn sevak-request-handling-listener [] (proxy [Listener] [] (message [headerMap messageBody] - (try + (with-swarmiji-bindings + (try (let [req-json (json/decode-from-str messageBody) _ (log-message "got request" req-json) service-name (req-json :sevak-service-name) service-args (req-json :sevak-service-args) return-q (req-json :return-queue-name) @@ -64,7 +65,7 @@ (throw (Exception. (str "No handler found for: " service-name)))) (send sevak-agent async-sevak-handler service-name service-args return-q)) (catch Exception e - (log-exception e)))))) + (log-exception e))))))) (defn start-sevak-listener [] (let [client (new-queue-client) diff --git a/src/org/runa/swarmiji/utils/exception_utils.clj b/src/org/runa/swarmiji/utils/exception_utils.clj deleted file mode 100644 index 433b084..0000000 --- a/src/org/runa/swarmiji/utils/exception_utils.clj +++ /dev/null @@ -1,17 +0,0 @@ -(ns org.runa.swarmiji.utils.exception-utils) - -(use 'org.runa.swarmiji.utils.general-utils) -(use 'org.runa.swarmiji.utils.logger) - -(defn exception-name [e] - (.getName (.getClass e))) - -(defn stacktrace [e] - (apply str - (cons (str (exception-name e) "\n") - (cons (str (.getMessage e) "\n") - (map #(str (.toString %) "\n") (.getStackTrace e)))))) - -(defn log-exception [e] - (log-message (stacktrace e)) - (.printStackTrace e)) diff --git a/src/org/runa/swarmiji/utils/logger.clj b/src/org/runa/swarmiji/utils/logger.clj deleted file mode 100644 index 441d74d..0000000 --- a/src/org/runa/swarmiji/utils/logger.clj +++ /dev/null @@ -1,20 +0,0 @@ -(ns org.runa.swarmiji.utils.logger) - -(use '[org.runa.swarmiji.config.system-config :as config]) -(use 'org.runa.swarmiji.utils.general-utils) -(import '(java.io FileWriter BufferedWriter File)) -(import '(org.apache.commons.io FileUtils)) - -(defn spit [f content] - (let [file (File. f)] - (if (not (.exists file)) - (FileUtils/touch file)) - (with-open [#^FileWriter fw (FileWriter. f true)] - (with-open [#^BufferedWriter bw (BufferedWriter. fw)] - (.write bw (str content "\n")))))) - -(defn log-message [& message-tokens] - (let [message (apply str (interleave message-tokens (repeat " ")))] - (if (log-to-console?) - (println message)) - (spit config/logfile message))) \ No newline at end of file