diff options
| author | Amar Tumballi <amarts@redhat.com> | 2012-08-02 13:14:25 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-08-03 02:01:52 -0700 | 
| commit | ed4b76ba9c545f577287c0e70ae3cc853a0d5f3f (patch) | |
| tree | deffb91a0cee620ac7fcc8c7914dbca73668574e /libglusterfs/src/logging.h | |
| parent | 66205114267ec659b4ad8084c7e9497009529c61 (diff) | |
 core: reduce the usage of global variables
* move all the 'logging' related global variables into ctx
* make gf_fop_list a 'const' global array, hence no init(),
  no edits.
* make sure ctx is allocated without any dependancy on
  memory-accounting infrastructure, so it can be the first
  one to get allocated
* globals_init() should happen with ctx as argument
not yet fixed below in this patchset:
* anything with 'THIS' related globals
* anything related to compat_errno related globals as its
  one time init'd and not changed later on.
* statedump related globals
Change-Id: Iab8fc30d4bfdbded6741d66ff1ed670fdc7b7ad2
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 764890
Reviewed-on: http://review.gluster.com/3767
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs/src/logging.h')
| -rw-r--r-- | libglusterfs/src/logging.h | 91 | 
1 files changed, 47 insertions, 44 deletions
diff --git a/libglusterfs/src/logging.h b/libglusterfs/src/logging.h index 0d290bd5a7a..53eb5b72287 100644 --- a/libglusterfs/src/logging.h +++ b/libglusterfs/src/logging.h @@ -59,29 +59,60 @@ typedef enum {          GF_LOG_TRACE,      /* full trace of operation */  } gf_loglevel_t; -extern gf_loglevel_t gf_log_loglevel; -extern char gf_log_xl_log_set; +typedef struct gf_log_handle_ { +        pthread_mutex_t  logfile_mutex; +        uint8_t          logrotate; +        gf_loglevel_t    loglevel; +        int              gf_log_syslog; +        gf_loglevel_t    sys_log_level; +        char             gf_log_xl_log_set; +        char            *filename; +        FILE            *logfile; +        FILE            *gf_log_logfile; +        char            *cmd_log_filename; +        FILE            *cmdlogfile; + +} gf_log_handle_t; + +void gf_log_globals_init (void *ctx); +int gf_log_init (void *data, const char *filename); + +void gf_log_logrotate (int signum); + +void gf_log_cleanup (void); + +int _gf_log (const char *domain, const char *file, +             const char *function, int32_t line, gf_loglevel_t level, +             const char *fmt, ...) +             __attribute__ ((__format__ (__printf__, 6, 7))); +int _gf_log_callingfn (const char *domain, const char *file, +                       const char *function, int32_t line, gf_loglevel_t level, +                       const char *fmt, ...) +                       __attribute__ ((__format__ (__printf__, 6, 7))); + +int _gf_log_nomem (const char *domain, const char *file, +                   const char *function, int line, gf_loglevel_t level, +                   size_t size); + +int _gf_log_eh (const char *function, const char *fmt, ...); + +  #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0)  #define gf_log(dom, levl, fmt...) do {                                  \                  FMT_WARN (fmt);                                         \ -                                                                        \ -                if ((levl > gf_log_loglevel) && !gf_log_xl_log_set)     \ -                        break;                                          \                  _gf_log (dom, __FILE__, __FUNCTION__, __LINE__,         \                           levl, ##fmt);                                  \          } while (0)  #define gf_log_eh(fmt...) do {                                          \ -        _gf_log_eh (__FUNTION__, ##fmt);                                \ +                FMT_WARN (fmt);                                         \ +                _gf_log_eh (__FUNTION__, ##fmt);                        \          } while (0)  #define gf_log_callingfn(dom, levl, fmt...) do {                        \                  FMT_WARN (fmt);                                         \ -                                                                        \ -                if ((levl > gf_log_loglevel) && !gf_log_xl_log_set)     \ -                        break;                                          \                  _gf_log_callingfn (dom, __FILE__, __FUNCTION__, __LINE__, \                                     levl, ##fmt);                        \          } while (0) @@ -89,8 +120,6 @@ extern char gf_log_xl_log_set;  /* No malloc or calloc should be called in this function */  #define gf_log_nomem(dom, levl, size) do {                              \ -                if ((levl > gf_log_loglevel) && !gf_log_xl_log_set)     \ -                        break;                                          \                  _gf_log_nomem (dom, __FILE__, __FUNCTION__, __LINE__,   \                                 levl, size);                             \          } while (0) @@ -101,33 +130,6 @@ extern char gf_log_xl_log_set;                  gf_log (args);                                          \          } - -void gf_log_logrotate (int signum); - -void gf_log_globals_init (void); -int gf_log_init (const char *filename); -void gf_log_cleanup (void); - -int _gf_log (const char *domain, const char *file, -             const char *function, int32_t line, gf_loglevel_t level, -             const char *fmt, ...) -             __attribute__ ((__format__ (__printf__, 6, 7))); -int _gf_log_callingfn (const char *domain, const char *file,  -                       const char *function, int32_t line, gf_loglevel_t level, -                       const char *fmt, ...) -                       __attribute__ ((__format__ (__printf__, 6, 7))); - -int _gf_log_nomem (const char *domain, const char *file, -                   const char *function, int line, gf_loglevel_t level, -                   size_t size); - -int _gf_log_eh (const char *function, const char *fmt, ...); - -int gf_log_from_client (const char *msg, char *identifier); - -void gf_log_lock (void); -void gf_log_unlock (void); -  void gf_log_disable_syslog (void);  void gf_log_enable_syslog (void);  gf_loglevel_t gf_log_get_loglevel (void); @@ -135,6 +137,13 @@ void gf_log_set_loglevel (gf_loglevel_t level);  gf_loglevel_t gf_log_get_xl_loglevel (void *xl);  void gf_log_set_xl_loglevel (void *xl, gf_loglevel_t level); +int gf_cmd_log (const char *domain, const char *fmt, ...) +                __attribute__ ((__format__ (__printf__, 2, 3))); + +int gf_cmd_log_init (const char *filename); + +void set_sys_log_level (gf_loglevel_t level); +  #define GF_DEBUG(xl, format, args...)                           \          gf_log ((xl)->name, GF_LOG_DEBUG, format, ##args)  #define GF_INFO(xl, format, args...)                            \ @@ -144,10 +153,4 @@ void gf_log_set_xl_loglevel (void *xl, gf_loglevel_t level);  #define GF_ERROR(xl, format, args...)                           \          gf_log ((xl)->name, GF_LOG_ERROR, format, ##args) -int gf_cmd_log (const char *domain, const char *fmt, ...) -                __attribute__ ((__format__ (__printf__, 2, 3))); - -int gf_cmd_log_init (const char *filename); - -void set_sys_log_level (gf_loglevel_t level);  #endif /* __LOGGING_H__ */  | 
