Blob Blame History Raw
From 3c0a03459e08568339195d14ffd2fef9acb89607 Mon Sep 17 00:00:00 2001
From: Manikandan Selvaganesh <mselvaga@redhat.com>
Date: Wed, 11 Mar 2015 20:11:09 +0530
Subject: [PATCH 082/101] protocol/server : port log messages to new framework

Change-Id: I7901f55d06716161cc31d2b79a600a16b5ec2ef8
BUG: 1231776
Signed-off-by: Manikandan Selvaganesh <mselvaga@redhat.com>
Reviewed-on: http://review.gluster.org/9874
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Tested-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/50889
Reviewed-by: Raghavendra Gowdappa <rgowdapp@redhat.com>
Tested-by: Raghavendra Gowdappa <rgowdapp@redhat.com>
---
 xlators/protocol/server/src/Makefile.am        |    3 +-
 xlators/protocol/server/src/authenticate.c     |   29 +-
 xlators/protocol/server/src/server-handshake.c |  152 +++---
 xlators/protocol/server/src/server-helpers.c   |  107 ++--
 xlators/protocol/server/src/server-messages.h  |  796 ++++++++++++++++++++++++
 xlators/protocol/server/src/server-resolve.c   |   64 ++-
 xlators/protocol/server/src/server-rpc-fops.c  |  208 ++++---
 xlators/protocol/server/src/server.c           |  137 +++--
 8 files changed, 1202 insertions(+), 294 deletions(-)
 create mode 100644 xlators/protocol/server/src/server-messages.h

diff --git a/xlators/protocol/server/src/Makefile.am b/xlators/protocol/server/src/Makefile.am
index 6a18bf0..c62d24f 100644
--- a/xlators/protocol/server/src/Makefile.am
+++ b/xlators/protocol/server/src/Makefile.am
@@ -10,7 +10,8 @@ server_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la \
 server_la_SOURCES = server.c server-resolve.c server-helpers.c  \
 	server-rpc-fops.c server-handshake.c authenticate.c
 
-noinst_HEADERS = server.h server-helpers.h server-mem-types.h authenticate.h
+noinst_HEADERS = server.h server-helpers.h server-mem-types.h authenticate.h \
+	server-messages.h
 
 AM_CPPFLAGS = $(GF_CPPFLAGS) \
 	-I$(top_srcdir)/libglusterfs/src \
diff --git a/xlators/protocol/server/src/authenticate.c b/xlators/protocol/server/src/authenticate.c
index d8d138a..8b45c41 100644
--- a/xlators/protocol/server/src/authenticate.c
+++ b/xlators/protocol/server/src/authenticate.c
@@ -23,6 +23,7 @@
 #include <dlfcn.h>
 #include <errno.h>
 #include "authenticate.h"
+#include "server-messages.h"
 
 static int
 init (dict_t *this, char *key, data_t *value, void *data)
@@ -38,9 +39,9 @@ init (dict_t *this, char *key, data_t *value, void *data)
         error = data;
 
         if (!strncasecmp (key, "ip", strlen ("ip"))) {
-                gf_log ("authenticate", GF_LOG_ERROR,
-                        "AUTHENTICATION MODULE \"IP\" HAS BEEN REPLACED "
-                        "BY \"ADDR\"");
+                gf_msg ("authenticate", GF_LOG_ERROR, 0,
+                        PS_MSG_AUTHENTICATE_ERROR, "AUTHENTICATION MODULE "
+                        "\"IP\" HAS BEEN REPLACED BY \"ADDR\"");
                 dict_set (this, key, data_from_dynptr (NULL, 0));
                 /* TODO: 1.3.x backword compatibility */
                 // *error = -1;
@@ -57,7 +58,8 @@ init (dict_t *this, char *key, data_t *value, void *data)
 
         handle = dlopen (auth_file, RTLD_LAZY);
         if (!handle) {
-                gf_log ("authenticate", GF_LOG_ERROR, "dlopen(%s): %s\n",
+                gf_msg ("authenticate", GF_LOG_ERROR, 0,
+                        PS_MSG_AUTHENTICATE_ERROR, "dlopen(%s): %s\n",
                         auth_file, dlerror ());
                 dict_set (this, key, data_from_dynptr (NULL, 0));
                 GF_FREE (auth_file);
@@ -68,8 +70,9 @@ init (dict_t *this, char *key, data_t *value, void *data)
 
         authenticate = dlsym (handle, "gf_auth");
         if (!authenticate) {
-                gf_log ("authenticate", GF_LOG_ERROR,
-                        "dlsym(gf_auth) on %s\n", dlerror ());
+                gf_msg ("authenticate", GF_LOG_ERROR, 0,
+                        PS_MSG_AUTHENTICATE_ERROR, "dlsym(gf_auth) on %s\n",
+                        dlerror ());
                 dict_set (this, key, data_from_dynptr (NULL, 0));
                 dlclose (handle);
                 *error = -1;
@@ -95,8 +98,8 @@ init (dict_t *this, char *key, data_t *value, void *data)
         }
         auth_handle->vol_opt->given_opt = dlsym (handle, "options");
         if (auth_handle->vol_opt->given_opt == NULL) {
-                gf_log ("authenticate", GF_LOG_DEBUG,
-                        "volume option validation not specified");
+                gf_msg_debug ("authenticate", 0, "volume option validation "
+                              "not specified");
         }
 
         auth_handle->authenticate = authenticate;
@@ -135,8 +138,9 @@ _gf_auth_option_validate (dict_t *d, char *k, data_t *v, void *tmp)
         ret = xlator_options_validate_list (xl, xl->options,
                                             handle->vol_opt, NULL);
         if (ret) {
-                gf_log ("authenticate", GF_LOG_ERROR,
-                        "volume option validation failed");
+                gf_msg ("authenticate", GF_LOG_ERROR, 0,
+                        PS_MSG_VOL_VALIDATE_FAILED, "volume option validation "
+                        "failed");
                 return -1;
         }
         return 0;
@@ -155,7 +159,8 @@ gf_auth_init (xlator_t *xl, dict_t *auth_modules)
 
 out:
         if (ret) {
-                gf_log (xl->name, GF_LOG_ERROR, "authentication init failed");
+                gf_msg (xl->name, GF_LOG_ERROR, 0, PS_MSG_AUTH_INIT_FAILED,
+                        "authentication init failed");
                 dict_foreach (auth_modules, fini, &ret);
                 ret = -1;
         }
@@ -234,7 +239,7 @@ gf_authenticate (dict_t *input_params,
                         name = peerinfo_data->data;
                 }
 
-                gf_log ("auth", GF_LOG_ERROR,
+                gf_msg ("auth", GF_LOG_ERROR, 0, PS_MSG_REMOTE_CLIENT_REFUSED,
                         "no authentication module is interested in "
                         "accepting remote-client %s", name);
                 result = AUTH_REJECT;
diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c
index 262df6a..556b0e2 100644
--- a/xlators/protocol/server/src/server-handshake.c
+++ b/xlators/protocol/server/src/server-handshake.c
@@ -21,6 +21,7 @@
 #include "compat-errno.h"
 #include "glusterfs3.h"
 #include "authenticate.h"
+#include "server-messages.h"
 
 struct __get_xl_struct {
         const char *name;
@@ -94,7 +95,7 @@ _volfile_update_checksum (xlator_t *this, char *key, uint32_t checksum)
         }
 
         if (temp_volfile->checksum != checksum) {
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_REMOUNT_CLIENT_REQD,
                         "the volume file was modified between a prior access "
                         "and now. This may lead to inconsistency between "
                         "clients, you are advised to remount client");
@@ -122,7 +123,7 @@ getspec_build_volfile_path (xlator_t *this, const char *key, char *path,
         ret = dict_get_str (this->options, "client-volume-filename",
                             &filename);
         if (ret == 0) {
-                gf_log (this->name, GF_LOG_WARNING,
+                gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_DEFAULTING_FILE,
                         "option 'client-volume-filename' is changed to "
                         "'volume-filename.<key>' which now takes 'key' as an "
                         "option to choose/fetch different files from server. "
@@ -137,8 +138,9 @@ getspec_build_volfile_path (xlator_t *this, const char *key, char *path,
                 if (ret < 0) {
                         /* Make sure that key doesn't contain "../" in path */
                         if ((gf_strstr (key, "/", "..")) == -1) {
-                                gf_log (this->name, GF_LOG_ERROR,
-                                        "%s: invalid key", key);
+                                gf_msg (this->name, GF_LOG_ERROR, EINVAL,
+                                        PS_MSG_INVALID_ENTRY, "%s: invalid "
+                                        "key", key);
                                 goto out;
                         }
                 }
@@ -148,9 +150,9 @@ getspec_build_volfile_path (xlator_t *this, const char *key, char *path,
                 ret = dict_get_str (this->options,
                                     "volume-filename.default", &filename);
                 if (ret < 0) {
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "no default volume filename given, "
-                                "defaulting to %s", DEFAULT_VOLUME_FILE_PATH);
+                        gf_msg_debug (this->name, 0, "no default volume "
+                                      "filename given, defaulting to %s",
+                                      DEFAULT_VOLUME_FILE_PATH);
                 }
         }
 
@@ -203,7 +205,8 @@ _validate_volfile_checksum (xlator_t *this, char *key,
                 fd = open (filename, O_RDONLY);
                 if (-1 == fd) {
                         ret = 0;
-                        gf_log (this->name, GF_LOG_INFO,
+                        gf_msg (this->name, GF_LOG_INFO, errno,
+                                PS_MSG_VOL_FILE_OPEN_FAILED,
                                 "failed to open volume file (%s) : %s",
                                 filename, strerror (errno));
                         goto out;
@@ -271,8 +274,8 @@ server_getspec (rpcsvc_request_t *req)
                 /* to allocate the proper buffer to hold the file data */
                 ret = stat (filename, &stbuf);
                 if (ret < 0){
-                        gf_log (this->name, GF_LOG_ERROR,
-                                "Unable to stat %s (%s)",
+                        gf_msg (this->name, GF_LOG_ERROR, errno,
+                                PS_MSG_STAT_ERROR, "Unable to stat %s (%s)",
                                 filename, strerror (errno));
                         op_errno = errno;
                         goto fail;
@@ -280,9 +283,9 @@ server_getspec (rpcsvc_request_t *req)
 
                 spec_fd = open (filename, O_RDONLY);
                 if (spec_fd < 0) {
-                        gf_log (this->name, GF_LOG_ERROR,
-                                "Unable to open %s (%s)",
-                                filename, strerror (errno));
+                        gf_msg (this->name, GF_LOG_ERROR, errno,
+                                PS_MSG_FILE_OP_FAILED, "Unable to open %s "
+                                "(%s)", filename, strerror (errno));
                         op_errno = errno;
                         goto fail;
                 }
@@ -382,10 +385,9 @@ server_setvolume (rpcsvc_request_t *req)
                                     "Internal error: failed to unserialize "
                                     "request dictionary");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg \"%s\"",
-                                "Internal error: failed to unserialize "
-                                "request dictionary");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg \"%s\"", "Internal error: failed "
+                                      "to unserialize request dictionary");
 
                 op_ret = -1;
                 op_errno = EINVAL;
@@ -400,8 +402,8 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = dict_set_str (reply, "ERROR",
                                     "UUID not specified");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = EINVAL;
@@ -414,8 +416,8 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = dict_set_str (reply, "ERROR",
                                     "lock state version not supplied");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = EINVAL;
@@ -429,14 +431,16 @@ server_setvolume (rpcsvc_request_t *req)
                 goto fail;
         }
 
-        gf_log (this->name, GF_LOG_DEBUG, "Connected to %s", client->client_uid);
+        gf_msg_debug (this->name, 0, "Connected to %s", client->client_uid);
         cancelled = server_cancel_grace_timer (this, client);
         if (cancelled)//Do gf_client_put on behalf of grace-timer-handler.
                 gf_client_put (client, NULL);
 
         serv_ctx = server_ctx_get (client, client->this);
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto fail;
         }
 
@@ -452,8 +456,9 @@ server_setvolume (rpcsvc_request_t *req)
         auth_set_username_passwd (params, config_params, client);
         if (req->trans->ssl_name) {
                 if (dict_set_str(params,"ssl-name",req->trans->ssl_name) != 0) {
-                        gf_log (this->name, GF_LOG_WARNING,
-                                "failed to set ssl_name %s", req->trans->ssl_name);
+                        gf_msg (this->name, GF_LOG_WARNING, 0,
+                                PS_MSG_SSL_NAME_SET_FAILED, "failed to set "
+                                "ssl_name %s", req->trans->ssl_name);
                         /* Not fatal, auth will just fail. */
                 }
         }
@@ -463,8 +468,8 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = dict_set_str (reply, "ERROR",
                                     "No FOP version number specified");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
         }
 
         ret = dict_get_int32 (params, "mgmt-version", &mgmt_version);
@@ -472,8 +477,8 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = dict_set_str (reply, "ERROR",
                                     "No MGMT version number specified");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
         }
 
         ret = gf_compare_client_version (req, fop_version, mgmt_version);
@@ -483,14 +488,15 @@ server_setvolume (rpcsvc_request_t *req)
                                    fop_version, mgmt_version);
                 /* get_supported_version (req)); */
                 if (-1 == ret) {
-                        gf_log (this->name, GF_LOG_ERROR,
-                                "asprintf failed while setting up error msg");
+                        gf_msg (this->name, GF_LOG_ERROR, 0,
+                                PS_MSG_ASPRINTF_FAILED, "asprintf failed while"
+                                "setting up error msg");
                         goto fail;
                 }
                 ret = dict_set_dynstr (reply, "ERROR", msg);
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = EINVAL;
@@ -502,8 +508,8 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = dict_set_str (reply, "ERROR",
                                     "No remote-subvolume option specified");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = EINVAL;
@@ -515,14 +521,15 @@ server_setvolume (rpcsvc_request_t *req)
                 ret = gf_asprintf (&msg, "remote-subvolume \"%s\" is not found",
                                    name);
                 if (-1 == ret) {
-                        gf_log (this->name, GF_LOG_ERROR,
+                        gf_msg (this->name, GF_LOG_ERROR, 0,
+                                PS_MSG_ASPRINTF_FAILED,
                                 "asprintf failed while setting error msg");
                         goto fail;
                 }
                 ret = dict_set_dynstr (reply, "ERROR", msg);
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = ENOENT;
@@ -535,8 +542,8 @@ server_setvolume (rpcsvc_request_t *req)
                         ret = dict_get_str (params, "volfile-key",
                                             &volfile_key);
                         if (ret)
-                                gf_log (this->name, GF_LOG_DEBUG,
-                                        "failed to set 'volfile-key'");
+                                gf_msg_debug (this->name, 0, "failed to set "
+                                              "'volfile-key'");
 
                         ret = _validate_volfile_checksum (this, volfile_key,
                                                           checksum);
@@ -546,8 +553,8 @@ server_setvolume (rpcsvc_request_t *req)
                                                     "varies from earlier "
                                                     "access");
                                 if (ret < 0)
-                                        gf_log (this->name, GF_LOG_DEBUG,
-                                                "failed to set error msg");
+                                        gf_msg_debug (this->name, 0, "failed "
+                                                      "to set error msg");
 
                                 op_ret   = -1;
                                 op_errno = ESTALE;
@@ -561,25 +568,26 @@ server_setvolume (rpcsvc_request_t *req)
         if (peerinfo) {
                 ret = dict_set_static_ptr (params, "peer-info", peerinfo);
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set peer-info");
+                        gf_msg_debug (this->name, 0, "failed to set "
+                                      "peer-info");
         }
         if (conf->auth_modules == NULL) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_AUTH_INIT_FAILED,
                         "Authentication module not initialized");
         }
 
         ret = dict_get_str (params, "client-version", &clnt_version);
         if (ret)
-                gf_log (this->name, GF_LOG_INFO, "client-version not set, "
-                        "may be of older version");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_CLIENT_VERSION_NOT_SET,
+                        "client-version not set, may be of older version");
 
         ret = gf_authenticate (params, config_params,
                                conf->auth_modules);
 
         if (ret == AUTH_ACCEPT) {
 
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_CLIENT_ACCEPTED,
                         "accepted client from %s (version: %s)",
                         client->client_uid,
                         (clnt_version) ? clnt_version : "old");
@@ -587,20 +595,20 @@ server_setvolume (rpcsvc_request_t *req)
                 client->bound_xl = xl;
                 ret = dict_set_str (reply, "ERROR", "Success");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
         } else {
-                gf_log (this->name, GF_LOG_ERROR,
-                        "Cannot authenticate client from %s %s",
-                        client->client_uid,
+                gf_msg (this->name, GF_LOG_ERROR, EACCES,
+                        PS_MSG_AUTHENTICATE_ERROR, "Cannot authenticate client"
+                        " from %s %s", client->client_uid,
                         (clnt_version) ? clnt_version : "old");
 
                 op_ret = -1;
                 op_errno = EACCES;
                 ret = dict_set_str (reply, "ERROR", "Authentication failed");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
                 goto fail;
         }
 
@@ -609,8 +617,8 @@ server_setvolume (rpcsvc_request_t *req)
                                     "Check volfile and handshake "
                                     "options in protocol/client");
                 if (ret < 0)
-                        gf_log (this->name, GF_LOG_DEBUG,
-                                "failed to set error msg");
+                        gf_msg_debug (this->name, 0, "failed to set error "
+                                      "msg");
 
                 op_ret = -1;
                 op_errno = EACCES;
@@ -623,10 +631,9 @@ server_setvolume (rpcsvc_request_t *req)
                 /* create inode table for this bound_xl, if one doesn't
                    already exist */
 
-                gf_log (this->name, GF_LOG_TRACE,
-                        "creating inode table with lru_limit=%"PRId32", "
-                        "xlator=%s", conf->inode_lru_limit,
-                        client->bound_xl->name);
+                gf_msg_trace (this->name, 0, "creating inode table with "
+                              "lru_limit=%"PRId32", xlator=%s",
+                              conf->inode_lru_limit, client->bound_xl->name);
 
                 /* TODO: what is this ? */
                 client->bound_xl->itable =
@@ -637,25 +644,24 @@ server_setvolume (rpcsvc_request_t *req)
         ret = dict_set_str (reply, "process-uuid",
                             this->ctx->process_uuid);
         if (ret)
-                gf_log (this->name, GF_LOG_DEBUG,
-                        "failed to set 'process-uuid'");
+                gf_msg_debug (this->name, 0, "failed to set 'process-uuid'");
 
         ret = dict_set_uint32 (reply, "clnt-lk-version", serv_ctx->lk_version);
         if (ret)
-                gf_log (this->name, GF_LOG_WARNING,
-                        "failed to set 'clnt-lk-version'");
+                gf_msg (this->name, GF_LOG_WARNING, 0,
+                        PS_MSG_CLIENT_LK_VERSION_ERROR, "failed to set "
+                        "'clnt-lk-version'");
 
         ret = dict_set_uint64 (reply, "transport-ptr",
                                ((uint64_t) (long) req->trans));
         if (ret)
-                gf_log (this->name, GF_LOG_DEBUG,
-                        "failed to set 'transport-ptr'");
+                gf_msg_debug (this->name, 0, "failed to set 'transport-ptr'");
 
 fail:
         rsp.dict.dict_len = dict_serialized_length (reply);
         if (rsp.dict.dict_len > UINT_MAX) {
-                gf_log ("server-handshake", GF_LOG_DEBUG,
-                        "failed to get serialized length of reply dict");
+                gf_msg_debug ("server-handshake", 0, "failed to get serialized"
+                               " length of reply dict");
                 op_ret   = -1;
                 op_errno = EINVAL;
                 rsp.dict.dict_len = 0;
@@ -667,8 +673,8 @@ fail:
                 if (rsp.dict.dict_val) {
                         ret = dict_serialize (reply, rsp.dict.dict_val);
                         if (ret < 0) {
-                                gf_log ("server-handshake", GF_LOG_DEBUG,
-                                        "failed to serialize reply dict");
+                                gf_msg_debug ("server-handshake", 0, "failed "
+                                              "to serialize reply dict");
                                 op_ret = -1;
                                 op_errno = -ret;
                         }
@@ -752,7 +758,9 @@ server_set_lk_version (rpcsvc_request_t *req)
         client = gf_client_get (this, &req->cred, args.uid);
         serv_ctx = server_ctx_get (client, client->this);
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto fail;
         }
 
diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c
index 545be6e..24d617f 100644
--- a/xlators/protocol/server/src/server-helpers.c
+++ b/xlators/protocol/server/src/server-helpers.c
@@ -16,6 +16,7 @@
 #include "server.h"
 #include "server-helpers.h"
 #include "gidcache.h"
+#include "server-messages.h"
 
 #include <fnmatch.h>
 #include <pwd.h>
@@ -42,25 +43,27 @@ gid_resolve (server_conf_t *conf, call_stack_t *root)
 
         ret = getpwuid_r (root->uid, &mypw, mystrs, sizeof(mystrs), &result);
         if (ret != 0) {
-                gf_log("gid-cache", GF_LOG_ERROR, "getpwuid_r(%u) failed",
-                       root->uid);
+                gf_msg ("gid-cache", GF_LOG_ERROR, errno,
+                        PS_MSG_GET_UID_FAILED, "getpwuid_r(%u) failed",
+                        root->uid);
                 return -1;
         }
 
         if (!result) {
-                gf_log ("gid-cache", GF_LOG_ERROR, "getpwuid_r(%u) found "
-                        "nothing", root->uid);
+                gf_msg ("gid-cache", GF_LOG_ERROR, 0, PS_MSG_UID_NOT_FOUND,
+                        "getpwuid_r(%u) found nothing", root->uid);
                 return -1;
         }
 
-        gf_log ("gid-cache", GF_LOG_TRACE, "mapped %u => %s", root->uid,
-                result->pw_name);
+        gf_msg_trace ("gid-cache", 0, "mapped %u => %s", root->uid,
+                      result->pw_name);
 
         ngroups = GF_MAX_AUX_GROUPS;
         ret = getgrouplist (result->pw_name, root->gid, mygroups, &ngroups);
         if (ret == -1) {
-                gf_log ("gid-cache", GF_LOG_ERROR, "could not map %s to group "
-                        "list (%d gids)", result->pw_name, root->ngrps);
+                gf_msg ("gid-cache", GF_LOG_ERROR, 0, PS_MSG_MAPPING_ERROR,
+                        "could not map %s to group list (%d gids)",
+                        result->pw_name, root->ngrps);
                 return -1;
         }
         root->ngrps = (uint16_t) ngroups;
@@ -286,12 +289,14 @@ do_fd_cleanup (xlator_t *this, client_t* client, fdentry_t *fdentries, int fd_co
                         ret = inode_path (fd->inode, NULL, &path);
 
                         if (ret > 0) {
-                                gf_log (this->name, GF_LOG_INFO,
+                                gf_msg (this->name, GF_LOG_INFO, 0,
+                                        PS_MSG_FD_CLEANUP,
                                         "fd cleanup on %s", path);
                                 GF_FREE (path);
                         }  else {
 
-                                gf_log (this->name, GF_LOG_INFO,
+                                gf_msg (this->name, GF_LOG_INFO, 0,
+                                        PS_MSG_FD_CLEANUP,
                                         "fd cleanup on inode with gfid %s",
                                         uuid_utoa (fd->inode->gfid));
                         }
@@ -334,7 +339,9 @@ server_connection_cleanup (xlator_t *this, client_t *client,
         serv_ctx = server_ctx_get (client, client->this);
 
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto out;
         }
 
@@ -356,7 +363,8 @@ server_connection_cleanup (xlator_t *this, client_t *client,
         if (fdentries != NULL)
                 ret = do_fd_cleanup (this, client, fdentries, fd_count);
         else
-                gf_log (this->name, GF_LOG_INFO, "no fdentries to clean");
+                gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_FDENTRY_NULL,
+                        "no fdentries to clean");
 
         if (cd_ret || ret)
                 ret = -1;
@@ -521,9 +529,9 @@ server_build_config (xlator_t *this, server_conf_t *conf)
         if (data) {
                 ret = gf_string2boolean(data->data, &conf->verify_volfile);
                 if (ret != 0) {
-                        gf_log (this->name, GF_LOG_WARNING,
-                                "wrong value for 'verify-volfile-checksum', "
-                                "Neglecting option");
+                        gf_msg (this->name, GF_LOG_WARNING, EINVAL,
+                                PS_MSG_INVALID_ENTRY, "wrong value for '"
+                                "verify-volfile-checksum', Neglecting option");
                 }
         }
 
@@ -531,9 +539,9 @@ server_build_config (xlator_t *this, server_conf_t *conf)
         if (data) {
                 ret = gf_string2boolean (data->data, &conf->trace);
                 if (ret != 0) {
-                        gf_log (this->name, GF_LOG_WARNING,
-                                "'trace' takes on only boolean values. "
-                                "Neglecting option");
+                        gf_msg (this->name, GF_LOG_WARNING, EINVAL,
+                                PS_MSG_INVALID_ENTRY, "'trace' takes on only "
+                                "boolean values. Neglecting option");
                 }
         }
 
@@ -541,9 +549,8 @@ server_build_config (xlator_t *this, server_conf_t *conf)
         ret = dict_get_int32 (this->options, "limits.transaction-size",
                               &conf->rpc_conf.max_block_size);
         if (ret < 0) {
-                gf_log (this->name, GF_LOG_TRACE,
-                        "defaulting limits.transaction-size to %d",
-                        DEFAULT_BLOCK_SIZE);
+                gf_msg_trace (this->name, 0, "defaulting limits.transaction-"
+                              "size to %d", DEFAULT_BLOCK_SIZE);
                 conf->rpc_conf.max_block_size = DEFAULT_BLOCK_SIZE;
         }
 
@@ -553,16 +560,17 @@ server_build_config (xlator_t *this, server_conf_t *conf)
                    or directory specified is non standard */
                 ret = stat (data->data, &buf);
                 if ((ret != 0) || !S_ISDIR (buf.st_mode)) {
-                        gf_log (this->name, GF_LOG_ERROR,
-                                "Directory '%s' doesn't exist, exiting.",
-                                data->data);
+                        gf_msg (this->name, GF_LOG_ERROR, 0,
+                                PS_MSG_DIR_NOT_FOUND, "Directory '%s' doesn't "
+                                "exist, exiting.", data->data);
                         ret = -1;
                         goto out;
                 }
                 /* Make sure that conf-dir doesn't contain ".." in path */
                 if ((gf_strstr (data->data, "/", "..")) == -1) {
                         ret = -1;
-                        gf_log (this->name, GF_LOG_ERROR,
+                        gf_msg (this->name, GF_LOG_ERROR, 0,
+                                PS_MSG_CONF_DIR_INVALID,
                                 "%s: invalid conf_dir", data->data);
                         goto out;
                 }
@@ -759,9 +767,8 @@ server_print_reply (call_frame_t *frame, int op_ret, int op_errno)
         if (state->fd)
                 snprintf (fdstr, 32, " fd=%p", state->fd);
 
-        gf_log (this->name, GF_LOG_INFO,
-                "%s%s => (%d, %d)%s",
-                op, caller, op_ret, op_errno, fdstr);
+        gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_SERVER_MSG,
+                "%s%s => (%d, %d)%s", op, caller, op_ret, op_errno, fdstr);
 out:
         return;
 }
@@ -822,9 +829,8 @@ server_print_request (call_frame_t *frame)
                 break;
         }
 
-        gf_log (this->name, GF_LOG_INFO,
-                "%s%s%s%s%s%s%s",
-                op, caller,
+        gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_SERVER_MSG,
+                "%s%s%s%s%s%s%s", op, caller,
                 resolve_vars, loc_vars, resolve2_vars, loc2_vars, other_vars);
 out:
         return;
@@ -859,9 +865,9 @@ serialize_rsp_direntp (gf_dirent_t *entries, gfs3_readdirp_rsp *rsp)
                 if (entry->dict) {
                         trav->dict.dict_len = dict_serialized_length (entry->dict);
                         if (trav->dict.dict_len > UINT_MAX) {
-                                gf_log (THIS->name, GF_LOG_ERROR,
-                                        "failed to get serialized length "
-                                        "of reply dict");
+                                gf_msg (THIS->name, GF_LOG_ERROR, EINVAL,
+                                        PS_MSG_INVALID_ENTRY, "failed to get "
+                                        "serialized length of reply dict");
                                 errno = EINVAL;
                                 trav->dict.dict_len = 0;
                                 goto out;
@@ -877,7 +883,8 @@ serialize_rsp_direntp (gf_dirent_t *entries, gfs3_readdirp_rsp *rsp)
 
                         ret = dict_serialize (entry->dict, trav->dict.dict_val);
                         if (ret < 0) {
-                                gf_log (THIS->name, GF_LOG_ERROR,
+                                gf_msg (THIS->name, GF_LOG_ERROR, 0,
+                                        PS_MSG_DICT_SERIALIZE_FAIL,
                                         "failed to serialize reply dict");
                                 errno = -ret;
                                 trav->dict.dict_len = 0;
@@ -989,7 +996,8 @@ gf_server_check_getxattr_cmd (call_frame_t *frame, const char *key)
                 pthread_mutex_lock (&conf->mutex);
                 {
                         list_for_each_entry (xprt, &conf->xprt_list, list) {
-                                gf_log ("mount-point-list", GF_LOG_INFO,
+                                gf_msg ("mount-point-list", GF_LOG_INFO, 0,
+                                        PS_MSG_MOUNT_PT_FAIL,
                                         "%s", xprt->peerinfo.identifier);
                         }
                 }
@@ -1021,7 +1029,7 @@ gf_server_check_setxattr_cmd (call_frame_t *frame, dict_t *dict)
                         total_read  += xprt->total_bytes_read;
                         total_write += xprt->total_bytes_write;
                 }
-                gf_log ("stats", GF_LOG_INFO,
+                gf_msg ("stats", GF_LOG_INFO, 0, PS_MSG_RW_STAT,
                         "total-read %"PRIu64", total-write %"PRIu64,
                         total_read, total_write);
         }
@@ -1038,7 +1046,7 @@ server_cancel_grace_timer (xlator_t *this, client_t *client)
         gf_boolean_t   cancelled = _gf_false;
 
         if (!this || !client) {
-                gf_log (THIS->name, GF_LOG_ERROR,
+                gf_msg (THIS->name, GF_LOG_ERROR, EINVAL, PS_MSG_INVALID_ENTRY,
                         "Invalid arguments to cancel connection timer");
                 return cancelled;
         }
@@ -1046,7 +1054,9 @@ server_cancel_grace_timer (xlator_t *this, client_t *client)
         serv_ctx = server_ctx_get (client, client->this);
 
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED,
+                        "server_ctx_get() failed");
                 goto out;
         }
 
@@ -1124,8 +1134,8 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,
 
         ret = dict_get_str (input_params, "username", &username);
         if (ret) {
-                gf_log ("auth/login", GF_LOG_DEBUG,
-                        "username not found, returning DONT-CARE");
+                gf_msg_debug ("auth/login", 0, "username not found, returning "
+                              "DONT-CARE");
                 /* For non trusted clients username and password
                    will not be there. So dont reject the client.
                 */
@@ -1135,14 +1145,15 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,
 
         ret = dict_get_str (input_params, "password", &password);
         if (ret) {
-                gf_log ("auth/login", GF_LOG_WARNING,
+                gf_msg ("auth/login", GF_LOG_WARNING, 0,
+                        PS_MSG_DICT_GET_FAILED,
                         "password not found, returning DONT-CARE");
                 goto out;
         }
 
         ret = dict_get_str (input_params, "remote-subvolume", &brick_name);
         if (ret) {
-                gf_log ("auth/login", GF_LOG_ERROR,
+                gf_msg ("auth/login", GF_LOG_ERROR, 0, PS_MSG_DICT_GET_FAILED,
                         "remote-subvolume not specified");
                 ret = -1;
                 goto out;
@@ -1177,8 +1188,9 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,
                                 GF_FREE (searchstr);
 
                                 if (!passwd_data) {
-                                        gf_log ("auth/login", GF_LOG_ERROR,
-                                                "wrong username/password "
+                                        gf_msg ("auth/login", GF_LOG_ERROR, 0,
+                                                PS_MSG_LOGIN_ERROR, "wrong "
+                                                "username/password "
                                                 "combination");
                                         ret = -1;
                                         goto out;
@@ -1193,8 +1205,9 @@ auth_set_username_passwd (dict_t *input_params, dict_t *config_params,
                                                 gf_strdup (password);
                                 }
                                 if (ret == -1)
-                                        gf_log ("auth/login", GF_LOG_ERROR,
-                                                "wrong password for user %s",
+                                        gf_msg ("auth/login", GF_LOG_ERROR, 0,
+                                                PS_MSG_LOGIN_ERROR, "wrong "
+                                                "password for user %s",
                                                 username);
                                 break;
                         }
diff --git a/xlators/protocol/server/src/server-messages.h b/xlators/protocol/server/src/server-messages.h
new file mode 100644
index 0000000..f604086
--- /dev/null
+++ b/xlators/protocol/server/src/server-messages.h
@@ -0,0 +1,796 @@
+/*
+  Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
+  This file is part of GlusterFS.
+
+  This file is licensed to you under your choice of the GNU Lesser
+  General Public License, version 3 or any later version (LGPLv3 or
+  later), or the GNU General Public License, version 2 (GPLv2), in all
+  cases as published by the Free Software Foundation.
+*/
+
+#ifndef _PS_MESSAGES_H__
+#define _PS_MESSAGES_H_
+
+#ifndef _CONFIG_H
+#define _CONFIG_H
+#include "config.h"
+#endif
+
+#include "glfs-message-id.h"
+
+/*! \file server-messages.h
+ *  \brief server log-message IDs and their descriptions
+ */
+
+/* NOTE: Rules for message additions
+ * 1) Each instance of a message is _better_ left with a unique message ID, even
+ *    if the message format is the same. Reasoning is that, if the message
+ *    format needs to change in one instance, the other instances are not
+ *    impacted or the new change does not change the ID of the instance being
+ *    modified.
+ * 2) Addition of a message,
+ *       - Should increment the GLFS_NUM_MESSAGES
+ *       - Append to the list of messages defined, towards the end
+ *       - Retain macro naming as glfs_msg_X (for redability across developers)
+ * NOTE: Rules for message format modifications
+ * 3) Check acorss the code if the message ID macro in question is reused
+ *    anywhere. If reused then then the modifications should ensure correctness
+ *    everywhere, or needs a new message ID as (1) above was not adhered to. If
+ *    not used anywhere, proceed with the required modification.
+ * NOTE: Rules for message deletion
+ * 4) Check (3) and if used anywhere else, then cannot be deleted. If not used
+ *    anywhere, then can be deleted, but will leave a hole by design, as
+ *    addition rules specify modification to the end of the list and not filling
+ *    holes.
+ */
+
+#define GLFS_PS_BASE                GLFS_MSGID_COMP_PS
+#define GLFS_NUM_MESSAGES           82
+#define GLFS_MSGID_END              (GLFS_PS_BASE + GLFS_NUM_MESSAGES + 1)
+/* Messages with message IDs */
+#define glfs_msg_start_x GLFS_PS_BASE, "Invalid: Start of messages"
+/*------------*/
+
+#define PS_MSG_AUTHENTICATE_ERROR               (GLFS_PS_BASE + 1)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_VOL_VALIDATE_FAILED              (GLFS_PS_BASE + 2)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_AUTH_INIT_FAILED                 (GLFS_PS_BASE + 3)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_REMOTE_CLIENT_REFUSED            (GLFS_PS_BASE + 4)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GFID_RESOLVE_FAILED              (GLFS_PS_BASE + 5)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ANONYMOUS_FD_CREATE_FAILED       (GLFS_PS_BASE + 6)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_NO_MEMORY                        (GLFS_PS_BASE + 7)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FD_NOT_FOUND                     (GLFS_PS_BASE + 8)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_INVALID_ENTRY                    (GLFS_PS_BASE + 9)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GET_UID_FAILED                   (GLFS_PS_BASE + 10)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_UID_NOT_FOUND                    (GLFS_PS_BASE + 11)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_MAPPING_ERROR                    (GLFS_PS_BASE + 12)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FD_CLEANUP                       (GLFS_PS_BASE + 13)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SERVER_CTX_GET_FAILED            (GLFS_PS_BASE + 14)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FDENTRY_NULL                     (GLFS_PS_BASE + 15)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DIR_NOT_FOUND                    (GLFS_PS_BASE + 16)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SERVER_MSG                       (GLFS_PS_BASE + 17)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DICT_SERIALIZE_FAIL              (GLFS_PS_BASE + 18)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RW_STAT                          (GLFS_PS_BASE + 19)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DICT_GET_FAILED                  (GLFS_PS_BASE + 20)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_LOGIN_ERROR                      (GLFS_PS_BASE + 21)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_REMOUNT_CLIENT_REQD              (GLFS_PS_BASE + 22)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DEFAULTING_FILE                  (GLFS_PS_BASE + 23)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_VOL_FILE_OPEN_FAILED             (GLFS_PS_BASE + 24)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_STAT_ERROR                       (GLFS_PS_BASE + 25)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SSL_NAME_SET_FAILED              (GLFS_PS_BASE + 26)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ASPRINTF_FAILED                  (GLFS_PS_BASE + 27)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CLIENT_VERSION_NOT_SET           (GLFS_PS_BASE + 28)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CLIENT_ACCEPTED                  (GLFS_PS_BASE + 29)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CLIENT_LK_VERSION_ERROR          (GLFS_PS_BASE + 30)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GRACE_TIMER_EXPD              (GLFS_PS_BASE + 31)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SERIALIZE_REPLY_FAILED           (GLFS_PS_BASE + 32)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_AUTH_IP_ERROR                    (GLFS_PS_BASE + 33)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SKIP_FORMAT_CHK                  (GLFS_PS_BASE + 34)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_INTERNET_ADDR_ERROR              (GLFS_PS_BASE + 35)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CLIENT_DISCONNECTING             (GLFS_PS_BASE + 36)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GRACE_TIMER_START                (GLFS_PS_BASE + 37)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_STATEDUMP_PATH_ERROR             (GLFS_PS_BASE + 38)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GRP_CACHE_ERROR                  (GLFS_PS_BASE + 39)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RPC_CONF_ERROR                   (GLFS_PS_BASE + 40)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_TRANSPORT_ERROR                  (GLFS_PS_BASE + 41)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SUBVOL_NULL                      (GLFS_PS_BASE + 42)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_PARENT_VOL_ERROR                 (GLFS_PS_BASE + 43)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RPCSVC_CREATE_FAILED             (GLFS_PS_BASE + 44)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RPCSVC_LISTENER_CREATE_FAILED    (GLFS_PS_BASE + 45)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RPCSVC_NOTIFY                    (GLFS_PS_BASE + 46)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_PGM_REG_FAILED                   (GLFS_PS_BASE + 47)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ULIMIT_SET_FAILED                (GLFS_PS_BASE + 48)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_STATFS                           (GLFS_PS_BASE + 49)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_LOOKUP_INFO                      (GLFS_PS_BASE + 50)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_LK_INFO                          (GLFS_PS_BASE + 51)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_LOCK_ERROR                       (GLFS_PS_BASE + 52)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_INODELK_INFO                     (GLFS_PS_BASE + 53)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ENTRYLK_INFO                     (GLFS_PS_BASE + 54)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ACCESS_INFO                      (GLFS_PS_BASE + 55)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DIR_INFO                         (GLFS_PS_BASE + 56)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_MKNOD_INFO                       (GLFS_PS_BASE + 57)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_REMOVEXATTR_INFO                 (GLFS_PS_BASE + 58)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_GETXATTR_INFO                    (GLFS_PS_BASE + 59)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SETXATTR_INFO                    (GLFS_PS_BASE + 60)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_RENAME_INFO                      (GLFS_PS_BASE + 61)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_LINK_INFO                        (GLFS_PS_BASE + 62)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_TRUNCATE_INFO                    (GLFS_PS_BASE + 63)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FSTAT_INFO                       (GLFS_PS_BASE + 64)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FLUSH_INFO                       (GLFS_PS_BASE + 65)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SYNC_INFO                        (GLFS_PS_BASE + 66)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_WRITE_INFO                       (GLFS_PS_BASE + 67)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_READ_INFO                        (GLFS_PS_BASE + 68)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CHKSUM_INFO                      (GLFS_PS_BASE + 69)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_OPEN_INFO                        (GLFS_PS_BASE + 70)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CREATE_INFO                      (GLFS_PS_BASE + 71)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_SETATTR_INFO                     (GLFS_PS_BASE + 72)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_XATTROP_INFO                     (GLFS_PS_BASE + 73)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ALLOC_INFO                       (GLFS_PS_BASE + 74)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_DISCARD_INFO                     (GLFS_PS_BASE + 75)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_ZEROFILL_INFO                    (GLFS_PS_BASE + 76)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FD_CREATE_FAILED                 (GLFS_PS_BASE + 77)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_WRONG_STATE                      (GLFS_PS_BASE + 78)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_CONF_DIR_INVALID                 (GLFS_PS_BASE + 79)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_MOUNT_PT_FAIL                    (GLFS_PS_BASE + 80)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_STAT_INFO                        (GLFS_PS_BASE + 81)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+#define PS_MSG_FILE_OP_FAILED                   (GLFS_PS_BASE + 82)
+
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+
+/*------------*/
+#define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages"
+
+#endif /* !_PS_MESSAGES_H_ */
+
diff --git a/xlators/protocol/server/src/server-resolve.c b/xlators/protocol/server/src/server-resolve.c
index 461884d..a7da519 100644
--- a/xlators/protocol/server/src/server-resolve.c
+++ b/xlators/protocol/server/src/server-resolve.c
@@ -15,6 +15,7 @@
 
 #include "server.h"
 #include "server-helpers.h"
+#include "server-messages.h"
 
 
 int
@@ -63,11 +64,18 @@ resolve_gfid_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         resolve_loc = &resolve->resolve_loc;
 
         if (op_ret == -1) {
-                gf_log (this->name, ((op_errno == ENOENT) ? GF_LOG_DEBUG :
-                                     GF_LOG_WARNING),
-                        "%s/%s: failed to resolve (%s)",
-                        uuid_utoa (resolve_loc->pargfid), resolve_loc->name,
-                        strerror (op_errno));
+                if (op_errno == ENOENT) {
+                        gf_msg_debug (this->name, 0, "%s/%s: failed to resolve"
+                                      " (%s)",
+                                      uuid_utoa (resolve_loc->pargfid),
+                                      resolve_loc->name, strerror (op_errno));
+                } else {
+                        gf_msg (this->name, GF_LOG_WARNING, op_errno,
+                                PS_MSG_GFID_RESOLVE_FAILED, "%s/%s: failed to "
+                                "resolve (%s)",
+                                uuid_utoa (resolve_loc->pargfid),
+                                resolve_loc->name, strerror (op_errno));
+                }
                 goto out;
         }
 
@@ -104,10 +112,18 @@ resolve_gfid_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         resolve_loc = &resolve->resolve_loc;
 
         if (op_ret == -1) {
-                gf_log (this->name, ((op_errno == ENOENT) ? GF_LOG_DEBUG :
-                                     GF_LOG_WARNING),
-                        "%s: failed to resolve (%s)",
-                        uuid_utoa (resolve_loc->gfid), strerror (op_errno));
+                if (op_errno == ENOENT) {
+                        gf_msg_debug (this->name, GF_LOG_DEBUG,
+                                      "%s: failed to resolve (%s)",
+                                      uuid_utoa (resolve_loc->gfid),
+                                      strerror (op_errno));
+                } else {
+                        gf_msg (this->name, GF_LOG_WARNING, op_errno,
+                                PS_MSG_GFID_RESOLVE_FAILED,
+                                "%s: failed to resolve (%s)",
+                                uuid_utoa (resolve_loc->gfid),
+                                strerror (op_errno));
+                }
                 loc_wipe (&resolve->resolve_loc);
                 goto out;
         }
@@ -213,8 +229,8 @@ resolve_continue (call_frame_t *frame)
         else if (!gf_uuid_is_null (resolve->gfid))
                 ret = resolve_inode_simple (frame);
         if (ret)
-                gf_log (this->name, GF_LOG_DEBUG,
-                        "return value of resolve_*_simple %d", ret);
+                gf_msg_debug (this->name, 0, "return value of resolve_*_"
+                              "simple %d", ret);
 
         resolve_loc_touchup (frame);
 out:
@@ -281,9 +297,9 @@ resolve_entry_simple (call_frame_t *frame)
         }
 
         if (resolve->type == RESOLVE_NOT) {
-                gf_log (this->name, GF_LOG_DEBUG, "inode (pointer: %p gfid:%s"
-                        " found for path (%s) while type is RESOLVE_NOT",
-                        inode, uuid_utoa (inode->gfid), resolve->path);
+                gf_msg_debug (this->name, 0, "inode (pointer: %p gfid:%s found"
+                              " for path (%s) while type is RESOLVE_NOT",
+                              inode, uuid_utoa (inode->gfid), resolve->path);
                 resolve->op_ret   = -1;
                 resolve->op_errno = EEXIST;
                 ret = -1;
@@ -420,9 +436,9 @@ out:
                 inode_unref (inode);
 
         if (ret != 0)
-                gf_log ("server", GF_LOG_DEBUG, "inode for the gfid (%s) is "
-                        "not found. anonymous fd creation failed",
-                        uuid_utoa (resolve->gfid));
+                gf_msg_debug ("server", 0, "inode for the gfid (%s) is "
+                              "not found. anonymous fd creation failed",
+                              uuid_utoa (resolve->gfid));
         return ret;
 }
 
@@ -476,7 +492,8 @@ server_resolve_fd (call_frame_t *frame)
         serv_ctx = server_ctx_get (client, client->this);
 
         if (serv_ctx == NULL) {
-                gf_log ("", GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg ("", GF_LOG_INFO, ENOMEM, PS_MSG_NO_MEMORY,
+                        "server_ctx_get() failed");
                 resolve->op_ret   = -1;
                 resolve->op_errno = ENOMEM;
                 return 0;
@@ -485,7 +502,8 @@ server_resolve_fd (call_frame_t *frame)
         state->fd = gf_fd_fdptr_get (serv_ctx->fdtable, fd_no);
 
         if (!state->fd) {
-                gf_log ("", GF_LOG_INFO, "fd not found in context");
+                gf_msg ("", GF_LOG_INFO, EBADF, PS_MSG_FD_NOT_FOUND, "fd not "
+                        "found in context");
                 resolve->op_ret   = -1;
                 resolve->op_errno = EBADF;
         }
@@ -519,7 +537,8 @@ server_resolve (call_frame_t *frame)
 
         } else {
                 if (resolve == &state->resolve)
-                        gf_log (frame->this->name, GF_LOG_WARNING,
+                        gf_msg (frame->this->name, GF_LOG_WARNING, 0,
+                                PS_MSG_INVALID_ENTRY,
                                 "no resolution type for %s (%s)",
                                 resolve->path, gf_fop_list[frame->root->op]);
 
@@ -580,8 +599,9 @@ server_resolve_all (call_frame_t *frame)
                 server_resolve_done (frame);
 
         } else {
-                gf_log (this->name, GF_LOG_ERROR,
-                        "Invalid pointer for state->resolve_now");
+                gf_msg (this->name, GF_LOG_ERROR, EINVAL,
+                        PS_MSG_INVALID_ENTRY, "Invalid pointer for "
+                        "state->resolve_now");
         }
 
         return 0;
diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c
index df58116..99b8011 100644
--- a/xlators/protocol/server/src/server-rpc-fops.c
+++ b/xlators/protocol/server/src/server-rpc-fops.c
@@ -22,6 +22,7 @@
 #include "glusterfs3-xdr.h"
 #include "glusterfs3.h"
 #include "compat-errno.h"
+#include "server-messages.h"
 
 #include "xdr-nfs3.h"
 
@@ -44,7 +45,8 @@ server_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                                     rsp.xdata.xdata_len, op_errno, out);
 
         if (op_ret < 0) {
-                gf_log (this->name, GF_LOG_WARNING, "%"PRId64": STATFS (%s)",
+                gf_msg (this->name, GF_LOG_WARNING, errno, PS_MSG_STATFS,
+                        "%"PRId64": STATFS (%s)",
                         frame->root->unique, strerror (op_errno));
                 goto out;
         }
@@ -138,8 +140,9 @@ out:
 
         if (op_ret) {
                 if (state->resolve.bname) {
-                        gf_log (this->name,
+                        gf_msg (this->name,
                                 fop_log_level (GF_FOP_LOOKUP, op_errno),
+                                op_errno, PS_MSG_LOOKUP_INFO,
                                 "%"PRId64": LOOKUP %s (%s/%s) ==> "
                                 "(%s)", frame->root->unique,
                                 state->loc.path,
@@ -147,8 +150,9 @@ out:
                                 state->resolve.bname,
                                 strerror (op_errno));
                 } else {
-                        gf_log (this->name,
+                        gf_msg (this->name,
                                 fop_log_level (GF_FOP_LOOKUP, op_errno),
+                                op_errno, PS_MSG_LOOKUP_INFO,
                                 "%"PRId64": LOOKUP %s (%s) ==> (%s)",
                                 frame->root->unique, state->loc.path,
                                 uuid_utoa (state->resolve.gfid),
@@ -180,7 +184,8 @@ server_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_LK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_LK, op_errno),
+                        op_errno, PS_MSG_LK_INFO,
                         "%"PRId64": LK %"PRId64" (%s) ==> "
                         "(%s)", frame->root->unique,
                         state->resolve.fd_no,
@@ -200,7 +205,7 @@ server_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                 lock->l_type = GF_LK_F_UNLCK;
                 break;
         default:
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_LOCK_ERROR,
                         "Unknown lock type: %"PRId32"!", lock->l_type);
                 break;
         }
@@ -235,7 +240,8 @@ server_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_INODELK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_INODELK, op_errno),
+                        errno, PS_MSG_INODELK_INFO,
                         "%"PRId64": INODELK %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -271,7 +277,8 @@ server_finodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_FINODELK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_FINODELK, op_errno),
+                        op_errno, PS_MSG_INODELK_INFO,
                         "%"PRId64": FINODELK %"PRId64" (%s) "
                         "==> (%s)", frame->root->unique,
                         state->resolve.fd_no,
@@ -307,7 +314,8 @@ server_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_ENTRYLK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_ENTRYLK, op_errno),
+                        op_errno, PS_MSG_ENTRYLK_INFO,
                         "%"PRId64": ENTRYLK %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -343,7 +351,8 @@ server_fentrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_FENTRYLK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_FENTRYLK, op_errno),
+                        op_errno, PS_MSG_ENTRYLK_INFO,
                         "%"PRId64": FENTRYLK %"PRId64" (%s) ==>(%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -378,7 +387,8 @@ server_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO,
+                        op_errno, PS_MSG_ACCESS_INFO,
                         "%"PRId64": ACCESS %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -415,7 +425,8 @@ server_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret) {
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO,
+                        op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": RMDIR %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -468,7 +479,8 @@ server_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_MKDIR, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_MKDIR, op_errno),
+                        op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": MKDIR %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -515,7 +527,8 @@ server_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, fop_log_level (GF_FOP_MKNOD, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_MKNOD, op_errno),
+                        op_errno, PS_MSG_MKNOD_INFO,
                         "%"PRId64": MKNOD %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -558,7 +571,8 @@ server_fsyncdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO,
+                        op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": FSYNCDIR %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -594,7 +608,8 @@ server_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO,
+                        op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": READDIR %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -642,7 +657,8 @@ server_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_OPENDIR, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_OPENDIR, op_errno),
+                        op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": OPENDIR %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -651,7 +667,9 @@ server_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         serv_ctx = server_ctx_get (frame->root->client, this);
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto out;
         }
 
@@ -692,7 +710,8 @@ server_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                 else
                         loglevel = GF_LOG_INFO;
 
-                gf_log (this->name, loglevel,
+                gf_msg (this->name, loglevel, op_errno,
+                        PS_MSG_REMOVEXATTR_INFO,
                         "%"PRId64": REMOVEXATTR %s (%s) of key %s ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -726,7 +745,8 @@ server_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret == -1) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_REMOVEXATTR_INFO,
                         "%"PRId64": FREMOVEXATTR %"PRId64" (%s) (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), state->name,
@@ -761,7 +781,8 @@ server_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret == -1) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_GETXATTR, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_GETXATTR, op_errno),
+                        op_errno, PS_MSG_GETXATTR_INFO,
                         "%"PRId64": GETXATTR %s (%s) (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -802,7 +823,8 @@ server_fgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret == -1) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_FGETXATTR, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_FGETXATTR, op_errno),
+                        op_errno, PS_MSG_GETXATTR_INFO,
                         "%"PRId64": FGETXATTR %"PRId64" (%s) (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -840,7 +862,7 @@ _gf_server_log_setxattr_failure (dict_t *d, char *k, data_t *v,
         frame = tmp;
         state = CALL_STATE (frame);
 
-        gf_log (THIS->name, GF_LOG_INFO,
+        gf_msg (THIS->name, GF_LOG_INFO, 0, PS_MSG_SETXATTR_INFO,
                 "%"PRId64": SETXATTR %s (%s) ==> %s",
                 frame->root->unique, state->loc.path,
                 uuid_utoa (state->resolve.gfid), k);
@@ -865,9 +887,14 @@ server_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                                       _gf_server_log_setxattr_failure,
                                       frame);
 
-                gf_log (THIS->name, ((op_errno == ENOTSUP) ?
-                                     GF_LOG_DEBUG : GF_LOG_INFO),
-                        "%s", strerror (op_errno));
+                if (op_errno == ENOTSUP) {
+                        gf_msg_debug (THIS->name, 0, "%s",
+                                      strerror (op_errno));
+                } else {
+                        gf_msg (THIS->name, GF_LOG_INFO, 0,
+                                PS_MSG_SETXATTR_INFO, "%s",
+                                strerror (op_errno));
+                }
                 goto out;
         }
 
@@ -895,7 +922,7 @@ _gf_server_log_fsetxattr_failure (dict_t *d, char *k, data_t *v,
         frame = tmp;
         state = CALL_STATE (frame);
 
-        gf_log (THIS->name, GF_LOG_INFO,
+        gf_msg (THIS->name, GF_LOG_INFO, 0, PS_MSG_SETXATTR_INFO,
                 "%"PRId64": FSETXATTR %"PRId64" (%s) ==> %s",
                 frame->root->unique, state->resolve.fd_no,
                 uuid_utoa (state->resolve.gfid), k);
@@ -921,9 +948,14 @@ server_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                                       _gf_server_log_fsetxattr_failure,
                                       frame);
                 }
-                gf_log (THIS->name, ((op_errno == ENOTSUP) ?
-                                     GF_LOG_DEBUG : GF_LOG_INFO),
-                        "%s", strerror (op_errno));
+                if (op_errno == ENOTSUP) {
+                        gf_msg_debug (THIS->name, 0, "%s",
+                                      strerror (op_errno));
+                } else {
+                        gf_msg (THIS->name, GF_LOG_INFO, 0,
+                                PS_MSG_SETXATTR_INFO, "%s",
+                                strerror (op_errno));
+                }
                 goto out;
         }
 
@@ -963,7 +995,7 @@ server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         if (op_ret == -1) {
                 uuid_utoa_r (state->resolve.gfid, oldpar_str);
                 uuid_utoa_r (state->resolve2.gfid, newpar_str);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_RENAME_INFO,
                         "%"PRId64": RENAME %s (%s/%s) -> %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         oldpar_str, state->resolve.bname, state->loc2.path,
@@ -974,9 +1006,9 @@ server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         stbuf->ia_type = state->loc.inode->ia_type;
 
         /* TODO: log gfid of the inodes */
-        gf_log (frame->root->client->bound_xl->name, GF_LOG_TRACE,
-                "%"PRId64": RENAME_CBK  %s ==> %s",
-                frame->root->unique, state->loc.name, state->loc2.name);
+        gf_msg_trace (frame->root->client->bound_xl->name, 0, "%"PRId64": "
+                      "RENAME_CBK %s ==> %s", frame->root->unique,
+                      state->loc.name, state->loc2.name);
 
         /* Before renaming the inode, we have to get the inode for the
          * destination entry (i.e. inode with state->loc2.parent as
@@ -1041,7 +1073,8 @@ server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret) {
-                gf_log (this->name, fop_log_level (GF_FOP_UNLINK, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_UNLINK, op_errno),
+                        op_errno, PS_MSG_LINK_INFO,
                         "%"PRId64": UNLINK %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -1050,9 +1083,8 @@ server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         }
 
         /* TODO: log gfid of the inodes */
-        gf_log (frame->root->client->bound_xl->name, GF_LOG_TRACE,
-                "%"PRId64": UNLINK_CBK %s",
-                frame->root->unique, state->loc.name);
+        gf_msg_trace (frame->root->client->bound_xl->name, 0, "%"PRId64": "
+                      "UNLINK_CBK %s", frame->root->unique, state->loc.name);
 
         inode_unlink (state->loc.inode, state->loc.parent,
                       state->loc.name);
@@ -1096,7 +1128,7 @@ server_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_LINK_INFO,
                         "%"PRId64": SYMLINK %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -1149,7 +1181,7 @@ server_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
                 uuid_utoa_r (state->resolve.gfid, gfid_str);
                 uuid_utoa_r (state->resolve2.pargfid, newpar_str);
 
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_LINK_INFO,
                         "%"PRId64": LINK %s (%s) -> %s/%s ==> (%s)",
                         frame->root->unique, state->loc.path,
                         gfid_str, newpar_str, state->resolve2.bname,
@@ -1192,7 +1224,8 @@ server_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_TRUNCATE_INFO,
                         "%"PRId64": TRUNCATE %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1229,7 +1262,7 @@ server_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_STAT_INFO,
                         "%"PRId64": FSTAT %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1265,7 +1298,8 @@ server_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_TRUNCATE_INFO,
                         "%"PRId64": FTRUNCATE %"PRId64" (%s)==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1301,7 +1335,8 @@ server_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_FLUSH, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_FLUSH, op_errno),
+                        op_errno, PS_MSG_FLUSH_INFO,
                         "%"PRId64": FLUSH %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1335,7 +1370,7 @@ server_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_SYNC_INFO,
                         "%"PRId64": FSYNC %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1372,7 +1407,7 @@ server_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_WRITE_INFO,
                         "%"PRId64": WRITEV %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                          uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1421,7 +1456,7 @@ server_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_READ_INFO,
                         "%"PRId64": READV %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1459,7 +1494,7 @@ server_rchecksum_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_CHKSUM_INFO,
                         "%"PRId64": RCHECKSUM %"PRId64" (%s)==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid), strerror (op_errno));
@@ -1500,7 +1535,8 @@ server_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_OPEN, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_OPEN, op_errno),
+                        op_errno, PS_MSG_OPEN_INFO,
                         "%"PRId64": OPEN %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -1510,7 +1546,9 @@ server_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         serv_ctx = server_ctx_get (frame->root->client, this);
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto out;
         }
 
@@ -1551,7 +1589,7 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         state = CALL_STATE (frame);
 
         if (op_ret < 0) {
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_CREATE_INFO,
                         "%"PRId64": CREATE %s (%s/%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.pargfid),
@@ -1560,10 +1598,9 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
         }
 
         /* TODO: log gfid too */
-        gf_log (frame->root->client->bound_xl->name, GF_LOG_TRACE,
-                "%"PRId64": CREATE %s (%s)",
-                frame->root->unique, state->loc.name,
-                uuid_utoa (stbuf->ia_gfid));
+        gf_msg_trace (frame->root->client->bound_xl->name, 0, "%"PRId64": "
+                      "CREATE %s (%s)", frame->root->unique, state->loc.name,
+                      uuid_utoa (stbuf->ia_gfid));
 
         link_inode = inode_link (inode, state->loc.parent,
                                  state->loc.name, stbuf);
@@ -1590,7 +1627,9 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         serv_ctx = server_ctx_get (frame->root->client, this);
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto out;
         }
 
@@ -1635,7 +1674,7 @@ server_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_LINK_INFO,
                         "%"PRId64": READLINK %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -1676,7 +1715,8 @@ server_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state  = CALL_STATE (frame);
-                gf_log (this->name, fop_log_level (GF_FOP_STAT, op_errno),
+                gf_msg (this->name, fop_log_level (GF_FOP_STAT, op_errno),
+                        op_errno, PS_MSG_STAT_INFO,
                         "%"PRId64": STAT %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -1714,7 +1754,7 @@ server_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_SETATTR_INFO,
                         "%"PRId64": SETATTR %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -1752,7 +1792,7 @@ server_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state  = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_SETATTR_INFO,
                         "%"PRId64": FSETATTR %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -1791,7 +1831,8 @@ server_xattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_XATTROP_INFO,
                         "%"PRId64": XATTROP %s (%s) ==> (%s)",
                         frame->root->unique, state->loc.path,
                         uuid_utoa (state->resolve.gfid),
@@ -1832,7 +1873,8 @@ server_fxattrop_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_XATTROP_INFO,
                         "%"PRId64": FXATTROP %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -1876,7 +1918,7 @@ server_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret < 0) {
                 state = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_DIR_INFO,
                         "%"PRId64": READDIRP %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -1925,7 +1967,7 @@ server_fallocate_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state  = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_ALLOC_INFO,
                         "%"PRId64": FALLOCATE %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -1963,7 +2005,7 @@ server_discard_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
 
         if (op_ret) {
                 state  = CALL_STATE (frame);
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno, PS_MSG_DISCARD_INFO,
                         "%"PRId64": DISCARD %"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -2003,7 +2045,8 @@ server_zerofill_cbk(call_frame_t *frame, void *cookie, xlator_t *this,
                                     rsp.xdata.xdata_len, op_errno, out);
 
         if (op_ret) {
-                gf_log (this->name, GF_LOG_INFO,
+                gf_msg (this->name, GF_LOG_INFO, op_errno,
+                        PS_MSG_ZEROFILL_INFO,
                         "%"PRId64": ZEROFILL%"PRId64" (%s) ==> (%s)",
                         frame->root->unique, state->resolve.fd_no,
                         uuid_utoa (state->resolve.gfid),
@@ -2290,8 +2333,8 @@ server_finodelk_resume (call_frame_t *frame, xlator_t *bound_xl)
         GF_UNUSED int   ret   = -1;
         server_state_t *state = NULL;
 
-        gf_log (bound_xl->name, GF_LOG_DEBUG, "frame %p, xlator %p",
-                frame, bound_xl);
+        gf_msg_debug (bound_xl->name, 0, "frame %p, xlator %p", frame,
+                      bound_xl);
 
         state = CALL_STATE (frame);
 
@@ -2323,8 +2366,8 @@ server_inodelk_resume (call_frame_t *frame, xlator_t *bound_xl)
         GF_UNUSED int   ret   = -1;
         server_state_t *state = NULL;
 
-        gf_log (bound_xl->name, GF_LOG_DEBUG, "frame %p, xlator %p",
-                frame, bound_xl);
+        gf_msg_debug (bound_xl->name, 0, "frame %p, xlator %p", frame,
+                      bound_xl);
 
         state = CALL_STATE (frame);
 
@@ -2499,7 +2542,8 @@ server_opendir_resume (call_frame_t *frame, xlator_t *bound_xl)
 
         state->fd = fd_create (state->loc.inode, frame->root->pid);
         if (!state->fd) {
-                gf_log ("server", GF_LOG_ERROR, "could not create the fd");
+                gf_msg ("server", GF_LOG_ERROR, 0, PS_MSG_FD_CREATE_FAILED,
+                        "could not create the fd");
                 goto err;
         }
 
@@ -2887,8 +2931,9 @@ server_create_resume (call_frame_t *frame, xlator_t *bound_xl)
 
         state->fd = fd_create (state->loc.inode, frame->root->pid);
         if (!state->fd) {
-                gf_log ("server", GF_LOG_ERROR, "fd creation for the inode %s "
-                        "failed", state->loc.inode?
+                gf_msg ("server", GF_LOG_ERROR, 0, PS_MSG_FD_CREATE_FAILED,
+                        "fd creation for the inode %s failed",
+                        state->loc.inode ?
                         uuid_utoa (state->loc.inode->gfid):NULL);
                 state->resolve.op_ret = -1;
                 state->resolve.op_errno = ENOMEM;
@@ -3911,7 +3956,8 @@ server3_3_writev_vecsizer (int state, ssize_t *readsize, char *base_addr,
                 nextstate = SERVER3_3_VECWRITE_START;
                 break;
         default:
-                gf_log ("server", GF_LOG_ERROR, "wrong state: %d", state);
+                gf_msg ("server", GF_LOG_ERROR, 0, PS_MSG_WRONG_STATE,
+                        "wrong state: %d", state);
         }
 
         return nextstate;
@@ -3944,8 +3990,9 @@ server3_3_release (rpcsvc_request_t *req)
 
         serv_ctx = server_ctx_get (client, client->this);
         if (serv_ctx == NULL) {
-                gf_log (req->trans->name, GF_LOG_INFO,
-                        "server_ctx_get() failed");
+                gf_msg (req->trans->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 req->rpc_err = SYSTEM_ERR;
                 goto out;
         }
@@ -3985,8 +4032,9 @@ server3_3_releasedir (rpcsvc_request_t *req)
 
         serv_ctx = server_ctx_get (client, client->this);
         if (serv_ctx == NULL) {
-                gf_log (req->trans->name, GF_LOG_INFO,
-                        "server_ctx_get() failed");
+                gf_msg (req->trans->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 req->rpc_err = SYSTEM_ERR;
                 goto out;
         }
@@ -5987,9 +6035,9 @@ server3_3_lk (rpcsvc_request_t *req)
                 state->flock.l_type = F_UNLCK;
                 break;
         default:
-                gf_log (frame->root->client->bound_xl->name, GF_LOG_ERROR,
-                        "fd - %"PRId64" (%s): Unknown lock type: %"PRId32"!",
-                        state->resolve.fd_no,
+                gf_msg (frame->root->client->bound_xl->name, GF_LOG_ERROR,
+                        0, PS_MSG_LOCK_ERROR, "fd - %"PRId64" (%s): Unknown "
+                        "lock type: %"PRId32"!", state->resolve.fd_no,
                         uuid_utoa (state->fd->inode->gfid), state->type);
                 break;
         }
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index f9d7d18..ca00dc0 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -26,6 +26,7 @@
 #include "defaults.h"
 #include "authenticate.h"
 #include "event.h"
+#include "server-messages.h"
 
 rpcsvc_cbk_program_t server_cbk_prog = {
         .progname  = "Gluster Callback",
@@ -48,13 +49,15 @@ grace_time_handler (void *data)
 
         GF_VALIDATE_OR_GOTO (THIS->name, this, out);
 
-        gf_log (this->name, GF_LOG_INFO, "grace timer expired for %s",
-                client->client_uid);
+        gf_msg (this->name, GF_LOG_INFO, 0, PS_MSG_GRACE_TIMER_EXPD, "grace "
+                "timer expired for %s", client->client_uid);
 
         serv_ctx = server_ctx_get (client, this);
 
         if (serv_ctx == NULL) {
-                gf_log (this->name, GF_LOG_INFO, "server_ctx_get() failed");
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_SERVER_CTX_GET_FAILED, "server_ctx_get() "
+                        "failed");
                 goto out;
         }
 
@@ -173,7 +176,8 @@ server_submit_reply (call_frame_t *frame, rpcsvc_request_t *req, void *arg,
 
         iob = gfs_serialize_reply (req, arg, &rsp, xdrproc);
         if (!iob) {
-                gf_log ("", GF_LOG_ERROR, "Failed to serialize reply");
+                gf_msg ("", GF_LOG_ERROR, 0, PS_MSG_SERIALIZE_REPLY_FAILED,
+                        "Failed to serialize reply");
                 goto ret;
         }
 
@@ -355,13 +359,14 @@ get_auth_types (dict_t *this, char *key, data_t *value, void *data)
                         /* TODO: backward compatibility, remove when
                            newer versions are available */
                         tmp = "addr";
-                        gf_log ("server", GF_LOG_WARNING,
+                        gf_msg ("server", GF_LOG_WARNING, 0,
+                                PS_MSG_AUTH_IP_ERROR,
                                 "assuming 'auth.ip' to be 'auth.addr'");
                 }
                 ret = dict_set_dynptr (auth_dict, tmp, NULL, 0);
                 if (ret < 0) {
-                        gf_log ("server", GF_LOG_DEBUG,
-                                "failed to dict_set_dynptr");
+                        gf_msg_debug ("server", 0, "failed to "
+                                      "dict_set_dynptr");
                 }
         }
 
@@ -388,7 +393,7 @@ _check_for_auth_option (dict_t *d, char *k, data_t *v,
                 goto out;
 
         if (strncmp(tail, "addr.", 5) != 0) {
-                gf_log (xl->name, GF_LOG_INFO,
+                gf_msg (xl->name, GF_LOG_INFO, 0, PS_MSG_SKIP_FORMAT_CHK,
                         "skip format check for non-addr auth option %s", k);
                 goto out;
         }
@@ -423,7 +428,8 @@ _check_for_auth_option (dict_t *d, char *k, data_t *v,
                                 ret = 0;
                         } else {
                                 ret = -1;
-                                gf_log (xl->name, GF_LOG_ERROR,
+                                gf_msg (xl->name, GF_LOG_ERROR, 0,
+                                        PS_MSG_INTERNET_ADDR_ERROR,
                                         "internet address '%s'"
                                         " does not conform to"
                                         " standards.", addr);
@@ -456,10 +462,10 @@ validate_auth_options (xlator_t *this, dict_t *dict)
                                       trav->xlator);
 
                 if (-1 == error) {
-                        gf_log (this->name, GF_LOG_ERROR,
-                                "volume '%s' defined as subvolume, but no "
-                                "authentication defined for the same",
-                                trav->xlator->name);
+                        gf_msg (this->name, GF_LOG_ERROR, 0,
+                                PS_MSG_AUTHENTICATE_ERROR, "volume '%s' "
+                                "defined as subvolume, but no authentication "
+                                "defined for the same", trav->xlator->name);
                         break;
                 }
                 trav = trav->next;
@@ -526,8 +532,9 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event,
                 if (!client)
                         break;
 
-                gf_log (this->name, GF_LOG_INFO, "disconnecting connection "
-                        "from %s", client->client_uid);
+                gf_msg (this->name, GF_LOG_INFO, 0,
+                        PS_MSG_CLIENT_DISCONNECTING, "disconnecting connection"
+                        " from %s", client->client_uid);
 
                 /* If lock self heal is off, then destroy the
                    conn object, else register a grace timer event */
@@ -546,7 +553,8 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event,
                 serv_ctx = server_ctx_get (client, this);
 
                 if (serv_ctx == NULL) {
-                        gf_log (this->name, GF_LOG_INFO,
+                        gf_msg (this->name, GF_LOG_INFO, 0,
+                                PS_MSG_SERVER_CTX_GET_FAILED,
                                 "server_ctx_get() failed");
                         goto out;
                 }
@@ -555,7 +563,8 @@ server_rpc_notify (rpcsvc_t *rpc, void *xl, rpcsvc_event_t event,
                 {
                         if (!serv_ctx->grace_timer) {
 
-                                gf_log (this->name, GF_LOG_INFO,
+                                gf_msg (this->name, GF_LOG_INFO, 0,
+                                        PS_MSG_GRACE_TIMER_START,
                                         "starting a grace timer for %s",
                                         client->client_uid);
 
@@ -593,8 +602,8 @@ mem_acct_init (xlator_t *this)
         ret = xlator_mem_acct_init (this, gf_server_mt_end + 1);
 
         if (ret != 0) {
-                gf_log (this->name, GF_LOG_ERROR, "Memory accounting init"
-                        "failed");
+                gf_msg (this->name, GF_LOG_ERROR, ENOMEM, PS_MSG_NO_MEMORY,
+                        "Memory accounting init failed");
                 return ret;
         }
 out:
@@ -659,8 +668,8 @@ server_init_grace_timer (xlator_t *this, dict_t *options,
         if (!ret)
                 gf_string2boolean (lk_heal, &conf->lk_heal);
 
-        gf_log (this->name, GF_LOG_DEBUG, "lk-heal = %s",
-                (conf->lk_heal) ? "on" : "off");
+        gf_msg_debug (this->name, 0, "lk-heal = %s",
+                      (conf->lk_heal) ? "on" : "off");
 
         ret = dict_get_int32 (options, "grace-timeout", &grace_timeout);
         if (!ret)
@@ -670,8 +679,8 @@ server_init_grace_timer (xlator_t *this, dict_t *options,
 
         gf_time_fmt (timestr, sizeof timestr, conf->grace_ts.tv_sec,
                      gf_timefmt_s);
-        gf_log (this->name, GF_LOG_DEBUG, "Server grace timeout value = %s",
-                timestr);
+        gf_msg_debug (this->name, 0, "Server grace timeout value = %s",
+                      timestr);
 
         conf->grace_ts.tv_nsec  = 0;
 
@@ -716,8 +725,8 @@ reconfigure (xlator_t *this, dict_t *options)
 
         if (dict_get_int32 ( options, "inode-lru-limit", &inode_lru_limit) == 0){
                 conf->inode_lru_limit = inode_lru_limit;
-                gf_log (this->name, GF_LOG_TRACE, "Reconfigured inode-lru-limit"
-                        " to %d", conf->inode_lru_limit);
+                gf_msg_trace (this->name, 0, "Reconfigured inode-lru-limit to "
+                              "%d", conf->inode_lru_limit);
 
                 /* traverse through the xlator graph. For each xlator in the
                    graph check whether it is a bound_xl or not (bound_xl means
@@ -732,22 +741,23 @@ reconfigure (xlator_t *this, dict_t *options)
         if (data) {
                 ret = gf_string2boolean (data->data, &trace);
                 if (ret != 0) {
-                        gf_log (this->name, GF_LOG_WARNING,
-                                "'trace' takes on only boolean values. "
-                                "Neglecting option");
+                        gf_msg (this->name, GF_LOG_WARNING, EINVAL,
+                                PS_MSG_INVALID_ENTRY, "'trace' takes on only "
+                                "boolean values. Neglecting option");
                         ret = -1;
                         goto out;
                 }
                 conf->trace = trace;
-                gf_log (this->name, GF_LOG_TRACE, "Reconfigured trace"
-                        " to %d", conf->trace);
+                gf_msg_trace (this->name, 0, "Reconfigured trace to %d",
+                              conf->trace);
 
         }
 
         GF_OPTION_RECONF ("statedump-path", statedump_path,
                           options, path, out);
         if (!statedump_path) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0,
+                        PS_MSG_STATEDUMP_PATH_ERROR,
                         "Error while reconfiguring statedump path");
                 ret = -1;
                 goto out;
@@ -780,14 +790,15 @@ reconfigure (xlator_t *this, dict_t *options)
         GF_OPTION_RECONF ("gid-timeout", conf->gid_cache_timeout, options,
                           int32, out);
         if (gid_cache_reconf (&conf->gid_cache, conf->gid_cache_timeout) < 0) {
-                gf_log(this->name, GF_LOG_ERROR, "Failed to reconfigure group "
-                        "cache.");
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_GRP_CACHE_ERROR,
+                        "Failed to reconfigure group cache.");
                 goto out;
         }
 
         rpc_conf = conf->rpc;
         if (!rpc_conf) {
-                gf_log (this->name, GF_LOG_ERROR, "No rpc_conf !!!!");
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR,
+                        "No rpc_conf !!!!");
                 goto out;
         }
 
@@ -797,7 +808,7 @@ reconfigure (xlator_t *this, dict_t *options)
         ret = rpcsvc_set_outstanding_rpc_limit (rpc_conf, options,
                                          RPCSVC_DEFAULT_OUTSTANDING_RPC_LIMIT);
         if (ret < 0) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR,
                         "Failed to reconfigure outstanding-rpc-limit");
                 goto out;
         }
@@ -807,8 +818,9 @@ reconfigure (xlator_t *this, dict_t *options)
                         if (listeners->trans->reconfigure )
                                 listeners->trans->reconfigure (listeners->trans, options);
                         else
-                                gf_log (this->name, GF_LOG_ERROR,
-                                        "Reconfigure not found for transport" );
+                                gf_msg (this->name, GF_LOG_ERROR, 0,
+                                        PS_MSG_TRANSPORT_ERROR, "Reconfigure "
+                                        "not found for transport");
                 }
         }
 
@@ -821,7 +833,7 @@ reconfigure (xlator_t *this, dict_t *options)
         ret = server_init_grace_timer (this, options, conf);
 
 out:
-        gf_log ("", GF_LOG_DEBUG, "returning %d", ret);
+        gf_msg_debug ("", 0, "returning %d", ret);
         return ret;
 }
 
@@ -858,13 +870,13 @@ init (xlator_t *this)
         GF_VALIDATE_OR_GOTO ("init", this, out);
 
         if (this->children == NULL) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_SUBVOL_NULL,
                         "protocol/server should have subvolume");
                 goto out;
         }
 
         if (this->parents != NULL) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_PARENT_VOL_ERROR,
                         "protocol/server should not have parent volumes");
                 goto out;
         }
@@ -906,7 +918,8 @@ init (xlator_t *this)
                 gf_path_strip_trailing_slashes (statedump_path);
                 this->ctx->statedump_path = gf_strdup (statedump_path);
         } else {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0,
+                        PS_MSG_STATEDUMP_PATH_ERROR,
                         "Error setting statedump path");
                 ret = -1;
                 goto out;
@@ -937,16 +950,17 @@ init (xlator_t *this)
 
         GF_OPTION_INIT("gid-timeout", conf->gid_cache_timeout, int32, out);
         if (gid_cache_init (&conf->gid_cache, conf->gid_cache_timeout) < 0) {
-                gf_log(this->name, GF_LOG_ERROR, "Failed to initialize "
-                        "group cache.");
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_GRP_CACHE_ERROR,
+                        "Failed to initialize group cache.");
                 goto out;
         }
 
         /* RPC related */
         conf->rpc = rpcsvc_init (this, this->ctx, this->options, 0);
         if (conf->rpc == NULL) {
-                gf_log (this->name, GF_LOG_ERROR,
-                        "creation of rpcsvc failed");
+                gf_msg (this->name, GF_LOG_ERROR, 0,
+                        PS_MSG_RPCSVC_CREATE_FAILED, "creation of rpcsvc "
+                        "failed");
                 ret = -1;
                 goto out;
         }
@@ -954,7 +968,7 @@ init (xlator_t *this)
         ret = rpcsvc_set_outstanding_rpc_limit (conf->rpc, this->options,
                                          RPCSVC_DEFAULT_OUTSTANDING_RPC_LIMIT);
         if (ret < 0) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_RPC_CONF_ERROR,
                         "Failed to configure outstanding-rpc-limit");
                 goto out;
         }
@@ -967,14 +981,14 @@ init (xlator_t *this)
 
         ret = dict_get_str (this->options, "transport-type", &transport_type);
         if (ret) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_TRANSPORT_ERROR,
                         "option transport-type not set");
                 ret = -1;
                 goto out;
         }
         total_transport = rpc_transport_count (transport_type);
         if (total_transport <= 0) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0, PS_MSG_TRANSPORT_ERROR,
                         "failed to get total number of available tranpsorts");
                 ret = -1;
                 goto out;
@@ -982,19 +996,21 @@ init (xlator_t *this)
         ret = rpcsvc_create_listeners (conf->rpc, this->options,
                                        this->name);
         if (ret < 1) {
-                gf_log (this->name, GF_LOG_WARNING,
+                gf_msg (this->name, GF_LOG_WARNING, 0,
+                        PS_MSG_RPCSVC_LISTENER_CREATE_FAILED,
                         "creation of listener failed");
                 ret = -1;
                 goto out;
         } else if (ret < total_transport) {
-                gf_log (this->name, GF_LOG_ERROR,
+                gf_msg (this->name, GF_LOG_ERROR, 0,
+                        PS_MSG_RPCSVC_LISTENER_CREATE_FAILED,
                         "creation of %d listeners failed, continuing with "
                         "succeeded transport", (total_transport - ret));
         }
 
         ret = rpcsvc_register_notify (conf->rpc, server_rpc_notify, this);
         if (ret) {
-                gf_log (this->name, GF_LOG_WARNING,
+                gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_RPCSVC_NOTIFY,
                         "registration of notify with rpcsvc failed");
                 goto out;
         }
@@ -1002,7 +1018,7 @@ init (xlator_t *this)
         glusterfs3_3_fop_prog.options = this->options;
         ret = rpcsvc_program_register (conf->rpc, &glusterfs3_3_fop_prog);
         if (ret) {
-                gf_log (this->name, GF_LOG_WARNING,
+                gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED,
                         "registration of program (name:%s, prognum:%d, "
                         "progver:%d) failed", glusterfs3_3_fop_prog.progname,
                         glusterfs3_3_fop_prog.prognum,
@@ -1013,7 +1029,7 @@ init (xlator_t *this)
         gluster_handshake_prog.options = this->options;
         ret = rpcsvc_program_register (conf->rpc, &gluster_handshake_prog);
         if (ret) {
-                gf_log (this->name, GF_LOG_WARNING,
+                gf_msg (this->name, GF_LOG_WARNING, 0, PS_MSG_PGM_REG_FAILED,
                         "registration of program (name:%s, prognum:%d, "
                         "progver:%d) failed", gluster_handshake_prog.progname,
                         gluster_handshake_prog.prognum,
@@ -1030,19 +1046,20 @@ init (xlator_t *this)
                 lim.rlim_max = 1048576;
 
                 if (setrlimit (RLIMIT_NOFILE, &lim) == -1) {
-                        gf_log (this->name, GF_LOG_WARNING,
-                                "WARNING: Failed to set 'ulimit -n 1M': %s",
-                                strerror(errno));
+                        gf_msg (this->name, GF_LOG_WARNING, errno,
+                                PS_MSG_ULIMIT_SET_FAILED, "WARNING: Failed to "
+                                "set 'ulimit -n 1M': %s", strerror(errno));
                         lim.rlim_cur = 65536;
                         lim.rlim_max = 65536;
 
                         if (setrlimit (RLIMIT_NOFILE, &lim) == -1) {
-                                gf_log (this->name, GF_LOG_WARNING,
-                                        "Failed to set max open fd to 64k: %s",
+                                gf_msg (this->name, GF_LOG_WARNING, errno,
+                                        PS_MSG_FD_NOT_FOUND, "Failed to set "
+                                        "max open fd to 64k: %s",
                                         strerror(errno));
                         } else {
-                                gf_log (this->name, GF_LOG_TRACE,
-                                        "max open fd set to 64k");
+                                gf_msg_trace (this->name, 0, "max open fd set "
+                                              "to 64k");
                         }
                 }
         }
-- 
1.7.1