xrootd
Loading...
Searching...
No Matches
XrdSsiLogger.hh
Go to the documentation of this file.
1#ifndef __XRDSSILOGGER_HH__
2#define __XRDSSILOGGER_HH__
3/******************************************************************************/
4/* */
5/* X r d S s i L o g g e r . h h */
6/* */
7/* (c) 2013 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Deprtment of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32#include <cstdarg>
33
34//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37
38struct iovec;
39
41{
42public:
43
44//-----------------------------------------------------------------------------
51//-----------------------------------------------------------------------------
52
53static void Msg(const char *pfx, const char *txt1,
54 const char *txt2=0, const char *txt3=0);
55
56//-----------------------------------------------------------------------------
66//-----------------------------------------------------------------------------
67
68static void Msgf(const char *pfx, const char *fmt, ...);
69
70//-----------------------------------------------------------------------------
80//-----------------------------------------------------------------------------
81
82static void Msgv(const char *pfx, const char *fmt, va_list aP);
83
84//-----------------------------------------------------------------------------
90//-----------------------------------------------------------------------------
91
92static void Msgv(struct iovec *iovP, int iovN);
93
94//-----------------------------------------------------------------------------
109//-----------------------------------------------------------------------------
110
111typedef void (MCB_t)(struct timeval const &mtime,
112 unsigned long tID,
113 const char *msg,
114 int mlen);
115
117
118static bool SetMCB(MCB_t &mcbP, mcbType mcbt=mcbAll);
119
120//-----------------------------------------------------------------------------
125//-----------------------------------------------------------------------------
126
127#define SSI_LOG(x) {std::cerr <<XrdSSiLogger::TBeg() <<x; XrdSsiLogger::TEnd();}
128#define SSI_SAY(x) {XrdSSiLogger::TBeg();std::cerr <<x; XrdSsiLogger::TEnd();}
129
130static const char *TBeg();
131static void TEnd();
132
133//-----------------------------------------------------------------------------
135//-----------------------------------------------------------------------------
136
139};
140
141/******************************************************************************/
142/* S e r v e r - S i d e L o g g i n g C a l l b a c k */
143/******************************************************************************/
144
145//-----------------------------------------------------------------------------
160//-----------------------------------------------------------------------------
161#endif
Definition XrdSsiLogger.hh:41
mcbType
Definition XrdSsiLogger.hh:116
@ mcbClient
Definition XrdSsiLogger.hh:116
@ mcbAll
Definition XrdSsiLogger.hh:116
@ mcbServer
Definition XrdSsiLogger.hh:116
void() MCB_t(struct timeval const &mtime, unsigned long tID, const char *msg, int mlen)
Length of message text.
Definition XrdSsiLogger.hh:111
static void Msgf(const char *pfx, const char *fmt,...)
static const char * TBeg()
static void Msgv(const char *pfx, const char *fmt, va_list aP)
static void TEnd()
static void Msg(const char *pfx, const char *txt1, const char *txt2=0, const char *txt3=0)
~XrdSsiLogger()
Definition XrdSsiLogger.hh:138
static void Msgv(struct iovec *iovP, int iovN)
XrdSsiLogger()
Constructor and destructor.
Definition XrdSsiLogger.hh:137
static bool SetMCB(MCB_t &mcbP, mcbType mcbt=mcbAll)