src/corelib/ncbidiag.cpp File Reference

#include <ncbi_pch.hpp>
#include <ncbiconf.h>
#include <corelib/ncbidiag.hpp>
#include <corelib/ncbithr.hpp>
#include <corelib/ncbimtx.hpp>
#include <corelib/ncbi_safe_static.hpp>
#include <corelib/ncbiexpt.hpp>
#include <corelib/ncbi_process.hpp>
#include <corelib/ncbi_param.hpp>
#include <corelib/ncbiapp.hpp>
#include <corelib/ncbifile.hpp>
#include <corelib/syslog.hpp>
#include <corelib/error_codes.hpp>
#include <corelib/request_ctx.hpp>
#include <corelib/request_control.hpp>
#include "ncbidiag_p.hpp"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stack>
#include <fcntl.h>

Include dependency graph for ncbidiag.cpp:

Go to the source code of this file.

Classes

class  CDiagRecycler
struct  SRequestCtxWrapper
struct  SDiagMessageData
class  CRecursionGuard
class  CExtraDecoder
class  CExtraEncoder
class  CCompatDiagHandler
class  CCompatStreamDiagHandler

Defines

#define NCBI_USE_ERRCODE_X   Corelib_Diag
#define NCBI_TOTALVIEW_ABORT_WORKAROUND   1

Enumerations

enum  EThreadDataState {
  eInitialized, eUninitialized, eInitializing, eDeinitialized,
  eReinitializing
}

Functions

 DEFINE_STATIC_MUTEX (s_DiagMutex)
 NCBI_PARAM_DECL (bool, Diag, Old_Post_Format)
 NCBI_PARAM_DEF_EX (bool, Diag, Old_Post_Format, true, eParam_NoThread, DIAG_OLD_POST_FORMAT)
typedef NCBI_PARAM_TYPE (Diag, Old_Post_Format) TOldPostFormatParam
 NCBI_PARAM_DECL (bool, Diag, AutoWrite_Context)
 NCBI_PARAM_DEF_EX (bool, Diag, AutoWrite_Context, false, eParam_NoThread, DIAG_AUTOWRITE_CONTEXT)
typedef NCBI_PARAM_TYPE (Diag, AutoWrite_Context) TAutoWrite_Context
 NCBI_PARAM_DECL (bool, Diag, Print_System_TID)
 NCBI_PARAM_DEF_EX (bool, Diag, Print_System_TID, false, eParam_NoThread, DIAG_PRINT_SYSTEM_TID)
typedef NCBI_PARAM_TYPE (Diag, Print_System_TID) TPrintSystemTID
 NCBI_PARAM_DECL (bool, Diag, Assert_On_Abort)
 NCBI_PARAM_DEF_EX (bool, Diag, Assert_On_Abort, false, eParam_NoThread, DIAG_ASSERT_ON_ABORT)
typedef NCBI_PARAM_TYPE (Diag, Assert_On_Abort) TAssertOnAbortParam
 NCBI_PARAM_DECL (long, Diag, Log_Size_Limit)
 NCBI_PARAM_DEF_EX (long, Diag, Log_Size_Limit, 0, eParam_NoThread, DIAG_LOG_SIZE_LIMIT)
typedef NCBI_PARAM_TYPE (Diag, Log_Size_Limit) TLogSizeLimitParam
 NCBI_PARAM_DECL (unsigned int, Diag, AppLog_Rate_Limit)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, AppLog_Rate_Limit, 50000, eParam_NoThread, DIAG_APPLOG_RATE_LIMIT)
typedef NCBI_PARAM_TYPE (Diag, AppLog_Rate_Limit) TAppLogRateLimitParam
 NCBI_PARAM_DECL (unsigned int, Diag, AppLog_Rate_Period)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, AppLog_Rate_Period, 10, eParam_NoThread, DIAG_APPLOG_RATE_PERIOD)
typedef NCBI_PARAM_TYPE (Diag, AppLog_Rate_Period) TAppLogRatePeriodParam
 NCBI_PARAM_DECL (unsigned int, Diag, ErrLog_Rate_Limit)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, ErrLog_Rate_Limit, 5000, eParam_NoThread, DIAG_ERRLOG_RATE_LIMIT)
typedef NCBI_PARAM_TYPE (Diag, ErrLog_Rate_Limit) TErrLogRateLimitParam
 NCBI_PARAM_DECL (unsigned int, Diag, ErrLog_Rate_Period)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, ErrLog_Rate_Period, 1, eParam_NoThread, DIAG_ERRLOG_RATE_PERIOD)
typedef NCBI_PARAM_TYPE (Diag, ErrLog_Rate_Period) TErrLogRatePeriodParam
 NCBI_PARAM_DECL (unsigned int, Diag, TraceLog_Rate_Limit)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, TraceLog_Rate_Limit, 5000, eParam_NoThread, DIAG_TRACELOG_RATE_LIMIT)
typedef NCBI_PARAM_TYPE (Diag, TraceLog_Rate_Limit) TTraceLogRateLimitParam
 NCBI_PARAM_DECL (unsigned int, Diag, TraceLog_Rate_Period)
 NCBI_PARAM_DEF_EX (unsigned int, Diag, TraceLog_Rate_Period, 1, eParam_NoThread, DIAG_TRACELOG_RATE_PERIOD)
typedef NCBI_PARAM_TYPE (Diag, TraceLog_Rate_Period) TTraceLogRatePeriodParam
 NCBI_PARAM_DECL (bool, Diag, Tee_To_Stderr)
 NCBI_PARAM_DEF_EX (bool, Diag, Tee_To_Stderr, false, eParam_NoThread, DIAG_TEE_TO_STDERR)
typedef NCBI_PARAM_TYPE (Diag, Tee_To_Stderr) TTeeToStderr
 NCBI_PARAM_ENUM_DECL (EDiagSev, Diag, Tee_Min_Severity)
 NCBI_PARAM_ENUM_ARRAY (EDiagSev, Diag, Tee_Min_Severity)
 NCBI_PARAM_ENUM_DEF_EX (EDiagSev, Diag, Tee_Min_Severity, kTeeMinSeverityDef, eParam_NoThread, DIAG_TEE_MIN_SEVERITY)
typedef NCBI_PARAM_TYPE (Diag, Tee_Min_Severity) TTeeMinSeverity
 NCBI_PARAM_DECL (size_t, Diag, Collect_Limit)
 NCBI_PARAM_DEF_EX (size_t, Diag, Collect_Limit, 1000, eParam_NoThread, DIAG_COLLECT_LIMIT)
typedef NCBI_PARAM_TYPE (Diag, Collect_Limit) TDiagCollectLimit
 NCBI_PARAM_DECL (bool, Log, Truncate)
 NCBI_PARAM_DEF_EX (bool, Log, Truncate, false, eParam_NoThread, LOG_TRUNCATE)
typedef NCBI_PARAM_TYPE (Log, Truncate) TLogTruncateParam
 NCBI_PARAM_DECL (bool, Log, NoCreate)
 NCBI_PARAM_DEF_EX (bool, Log, NoCreate, false, eParam_NoThread, LOG_NOCREATE)
typedef NCBI_PARAM_TYPE (Log, NoCreate) TLogNoCreate
const char * str_rev_str (const char *begin_str, const char *end_str, const char *str_search)
const char * find_match (char lsep, char rsep, const char *start, const char *stop)
Uint8 s_GetThreadId (void)
static void s_ThreadDataSafeStaticCleanup (void *)
int GetDiagRequestId (void)
 Get iteration number/request ID.
void SetDiagRequestId (int id)
 Set iteration number/request ID.
const char * s_AppStateToStr (EDiagAppState state)
EDiagAppState s_StrToAppState (const string &state)
bool IsGlobalProperty (const string &name)
void RequestStopWatchTlsCleanup (CStopWatch *value, void *)
string GetDefaultLogLocation (CNcbiApplication &app)
ios::openmode s_GetLogOpenMode (void)
bool OpenLogFileFromConfig (CNcbiRegistry &config, string *new_name)
CDiagContextGetDiagContext (void)
 Get diag context instance.
void * InitDiagHandler (void)
CDiagHandlerCreateDefaultDiagHandler (void)
int s_ParseInt (const string &message, size_t &pos, size_t width, char sep)
CTempString s_ParseStr (const string &message, size_t &pos, char sep, bool optional=false)
bool x_IsEncodableChar (char c)
static TDiagPostFlags s_SetDiagPostAllFlags (TDiagPostFlags &flags, TDiagPostFlags new_flags)
static void s_SetDiagPostFlag (TDiagPostFlags &flags, EDiagPostFlag flag)
static void s_UnsetDiagPostFlag (TDiagPostFlags &flags, EDiagPostFlag flag)
TDiagPostFlags SetDiagPostAllFlags (TDiagPostFlags flags)
 Set global post flags to "flags".
void SetDiagPostFlag (EDiagPostFlag flag)
 Set the specified flag (globally).
void UnsetDiagPostFlag (EDiagPostFlag flag)
 Unset the specified flag (globally).
TDiagPostFlags SetDiagTraceAllFlags (TDiagPostFlags flags)
 Versions of the above for extra trace flags.
void SetDiagTraceFlag (EDiagPostFlag flag)
void UnsetDiagTraceFlag (EDiagPostFlag flag)
void SetDiagPostPrefix (const char *prefix)
 Specify a string to prefix all subsequent error postings with.
void PushDiagPostPrefix (const char *prefix)
 Push a string to the list of message prefixes.
void PopDiagPostPrefix (void)
 Pop a string from the list of message prefixes.
EDiagSev SetDiagPostLevel (EDiagSev post_sev)
 Set the threshold severity for posting the messages.
int CompareDiagPostLevel (EDiagSev sev1, EDiagSev sev2)
 Compare two severities.
bool IsVisibleDiagPostLevel (EDiagSev sev)
 Check if the specified severity is higher or equal to the currently selected post level and will be printed by LOG_POST/ERR_POST.
void SetDiagFixedPostLevel (const EDiagSev post_sev)
 Sets and locks the level, combining the previous two calls.
bool DisableDiagPostLevelChange (bool disable_change)
 Disable change the diagnostic post level.
EDiagSev SetDiagDieLevel (EDiagSev die_sev)
 Set the "die" (abort) level for the program.
bool IgnoreDiagDieLevel (bool ignore)
 Ignore the die level settings.
void SetDiagTrace (EDiagTrace how, EDiagTrace dflt)
 Set the diagnostic trace settings.
void SetDiagHandler (CDiagHandler *handler, bool can_delete)
 Set the diagnostic handler using the specified diagnostic handler class.
bool IsSetDiagHandler (void)
 Check if diagnostic handler is set.
CDiagHandlerGetDiagHandler (bool take_ownership)
 Get the currently set diagnostic handler class.
void DiagHandler_Reopen (void)
 Ask diagnostic handler to reopen log files if necessary.
CDiagBuffer & GetDiagBuffer (void)
void SetSplitLogFile (bool value)
 Split log files flag.
bool GetSplitLogFile (void)
 Get split log files flag.
bool s_IsSpecialLogName (const string &name)
bool s_CanOpenLogFile (const string &file_name)
CStreamDiagHandler_Bases_CreateHandler (const string &fname, bool &failed)
bool SetLogFile (const string &file_name, EDiagFileType file_type, bool quick_flush)
 Set log files.
string GetLogFile (EDiagFileType file_type)
 Get log file name for the given log type.
string GetLogFile (void)
 Get log file name or diag handler name.
bool IsDiagStream (const CNcbiOstream *os)
void SetDiagErrCodeInfo (CDiagErrCodeInfo *info, bool can_delete)
 Set handler for processing error codes.
bool IsSetDiagErrCodeInfo (void)
 Indicates whether an error-code processing handler has been set.
CDiagErrCodeInfoGetDiagErrCodeInfo (bool take_ownership)
 Get handler for processing error codes.
void SetDiagFilter (EDiagFilter what, const char *filter_str)
 Set diagnostic filter.
static bool s_CheckDiagFilter (const CException &ex, EDiagSev sev, const char *file)
void s_FormatStackTrace (CNcbiOstream &os, const CStackTrace &trace)
void SetDiagHandler (FDiagHandler func, void *data, FDiagCleanup cleanup)
 Set the diagnostic handler using the specified diagnostic handler and cleanup functions.
void SetDiagStream (CNcbiOstream *os, bool quick_flush, FDiagCleanup cleanup, void *cleanup_data, const string &stream_name)
 Set diagnostic stream.
CNcbiOstreamGetDiagStream (void)
 Get current diagnostic stream (if it was set by SetDiagStream) or NULL.
void SetDoubleDiagHandler (void)
 Output diagnostics using both old and new style handlers.
void SetAbortHandler (FAbortHandler func)
 Set/unset abort handler.
void Abort (void)
 Smart abort function.
bool s_ParseErrCodeInfoStr (string &str, const SIZE_TYPE line, int &x_code, int &x_severity, string &x_message, bool &x_ready)
const char * g_DiagUnknownFunction (void)

Variables

const EDiagSev kTeeMinSeverityDef
static bool s_UseRootLog = true
static bool s_FinishedSetupDiag = false
static bool s_MergeLinesSetBySetupDiag = false
static CSafeStaticPtr< CDiagFilters_TraceFilter
static CSafeStaticPtr< CDiagFilters_PostFilter
static CSafeStaticPtr< CDiagRecyclers_DiagRecycler
static volatile EThreadDataState s_ThreadDataState = eUninitialized
static const char * s_AppStateStr []
const TDiagPostFlags kApplogDiagPostFlags
static const char * kExtraTypeArgName = "NCBIEXTRATYPE"
static const char * kDiagTimeFormat = "Y-M-DTh:m:s.l"
static const int kDiagW_PID = 5
static const int kDiagW_TID = 3
static const int kDiagW_RID = 4
static const int kDiagW_AppState = 2
static const int kDiagW_SN = 4
static const int kDiagW_UID = 16
static const int kDiagW_Host = 15
static const int kDiagW_Client = 15
static const int kDiagW_Session = 24
static const char * kUnknown_Host = "UNK_HOST"
static const char * kUnknown_Client = "UNK_CLIENT"
static const char * kUnknown_Session = "UNK_SESSION"
static const char * kUnknown_App = "UNK_APP"
static const char * kLogName_None = "NONE"
static const char * kLogName_Unknown = "UNKNOWN"
static const char * kLogName_Stdout = "STDOUT"
static const char * kLogName_Stderr = "STDERR"
static const char * kLogName_Stream = "STREAM"
static const char * kLogName_Memory = "MEMORY"
static const TDiagPostFlags s_OldDefaultPostFlags
static const TDiagPostFlags s_NewDefaultPostFlags
static TDiagPostFlags s_PostFlags = 0
static bool s_DiagPostFlagsInitialized = false
CDiagHandlers_DefaultHandler = CreateDefaultDiagHandler()
void * s_DiagHandlerInitializer = InitDiagHandler()
static const char s_ExtraEncodeChars [256][4]
const int kLogReopenDelay = 60
static bool s_SplitLogFile = false
static FAbortHandler s_UserAbortHandler = 0


Define Documentation

#define NCBI_TOTALVIEW_ABORT_WORKAROUND   1
 

#define NCBI_USE_ERRCODE_X   Corelib_Diag
 

Definition at line 68 of file ncbidiag.cpp.


Enumeration Type Documentation

enum EThreadDataState
 

Enumerator:
eInitialized 
eUninitialized 
eInitializing 
eDeinitialized 
eReinitializing 

Definition at line 567 of file ncbidiag.cpp.


Function Documentation

CDiagHandler * CreateDefaultDiagHandler void   ) 
 

Definition at line 2404 of file ncbidiag.cpp.

References kLogName_Stderr, NcbiCerr, and s_DefaultHandler.

DEFINE_STATIC_MUTEX s_DiagMutex   ) 
 

const char* find_match char  lsep,
char  rsep,
const char *  start,
const char *  stop
 

Definition at line 445 of file ncbidiag.cpp.

References pos.

Referenced by CDiagCompileInfo::ParseCurrFunctName().

string GetDefaultLogLocation CNcbiApplication app  ) 
 

Definition at line 1984 of file ncbidiag.cpp.

References entries, IRegistry::EnumerateEntries(), CNcbiApplication::GetProgramExecutablePath(), ITERATE, kToolkitRcPath, kWebDirToPort, mask, and pos.

Referenced by CDiagContext::SetupDiag().

CDiagBuffer& GetDiagBuffer void   ) 
 

Definition at line 4308 of file ncbidiag.cpp.

References CDiagContextThreadData::GetDiagBuffer(), and CDiagContextThreadData::GetThreadData().

Referenced by CDiagRestorer::CDiagRestorer(), PopDiagPostPrefix(), PushDiagPostPrefix(), SetDiagPostPrefix(), and CDiagRestorer::~CDiagRestorer().

void* InitDiagHandler void   ) 
 

Definition at line 2377 of file ncbidiag.cpp.

References eDCM_Init, eDS_Default, and CDiagContext::SetupDiag().

bool IsGlobalProperty const string &  name  )  [inline]
 

Definition at line 1339 of file ncbidiag.cpp.

References CDiagContext::kProperty_AppName, CDiagContext::kProperty_ExitCode, CDiagContext::kProperty_ExitSig, CDiagContext::kProperty_HostIP, CDiagContext::kProperty_HostName, and CDiagContext::kProperty_UserName.

Referenced by CDiagContext::DeleteProperty(), and CDiagContext::GetProperty().

NCBI_PARAM_DECL bool  ,
Log  ,
NoCreate 
 

NCBI_PARAM_DECL bool  ,
Log  ,
Truncate 
 

NCBI_PARAM_DECL size_t  ,
Diag  ,
Collect_Limit 
 

NCBI_PARAM_DECL bool  ,
Diag  ,
Tee_To_Stderr 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
TraceLog_Rate_Period 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
TraceLog_Rate_Limit 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
ErrLog_Rate_Period 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
ErrLog_Rate_Limit 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
AppLog_Rate_Period 
 

NCBI_PARAM_DECL unsigned  int,
Diag  ,
AppLog_Rate_Limit 
 

NCBI_PARAM_DECL long  ,
Diag  ,
Log_Size_Limit 
 

NCBI_PARAM_DECL bool  ,
Diag  ,
Assert_On_Abort 
 

NCBI_PARAM_DECL bool  ,
Diag  ,
Print_System_TID 
 

NCBI_PARAM_DECL bool  ,
Diag  ,
AutoWrite_Context 
 

NCBI_PARAM_DECL bool  ,
Diag  ,
Old_Post_Format 
 

NCBI_PARAM_DEF_EX bool  ,
Log  ,
NoCreate  ,
false  ,
eParam_NoThread  ,
LOG_NOCREATE 
 

NCBI_PARAM_DEF_EX bool  ,
Log  ,
Truncate  ,
false  ,
eParam_NoThread  ,
LOG_TRUNCATE 
 

NCBI_PARAM_DEF_EX size_t  ,
Diag  ,
Collect_Limit  ,
1000  ,
eParam_NoThread  ,
DIAG_COLLECT_LIMIT 
 

NCBI_PARAM_DEF_EX bool  ,
Diag  ,
Tee_To_Stderr  ,
false  ,
eParam_NoThread  ,
DIAG_TEE_TO_STDERR 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
TraceLog_Rate_Period  ,
,
eParam_NoThread  ,
DIAG_TRACELOG_RATE_PERIOD 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
TraceLog_Rate_Limit  ,
5000  ,
eParam_NoThread  ,
DIAG_TRACELOG_RATE_LIMIT 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
ErrLog_Rate_Period  ,
,
eParam_NoThread  ,
DIAG_ERRLOG_RATE_PERIOD 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
ErrLog_Rate_Limit  ,
5000  ,
eParam_NoThread  ,
DIAG_ERRLOG_RATE_LIMIT 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
AppLog_Rate_Period  ,
10  ,
eParam_NoThread  ,
DIAG_APPLOG_RATE_PERIOD 
 

NCBI_PARAM_DEF_EX unsigned  int,
Diag  ,
AppLog_Rate_Limit  ,
50000  ,
eParam_NoThread  ,
DIAG_APPLOG_RATE_LIMIT 
 

NCBI_PARAM_DEF_EX long  ,
Diag  ,
Log_Size_Limit  ,
,
eParam_NoThread  ,
DIAG_LOG_SIZE_LIMIT 
 

NCBI_PARAM_DEF_EX bool  ,
Diag  ,
Assert_On_Abort  ,
false  ,
eParam_NoThread  ,
DIAG_ASSERT_ON_ABORT 
 

NCBI_PARAM_DEF_EX bool  ,
Diag  ,
Print_System_TID  ,
false  ,
eParam_NoThread  ,
DIAG_PRINT_SYSTEM_TID 
 

NCBI_PARAM_DEF_EX bool  ,
Diag  ,
AutoWrite_Context  ,
false  ,
eParam_NoThread  ,
DIAG_AUTOWRITE_CONTEXT 
 

NCBI_PARAM_DEF_EX bool  ,
Diag  ,
Old_Post_Format  ,
true  ,
eParam_NoThread  ,
DIAG_OLD_POST_FORMAT 
 

NCBI_PARAM_ENUM_ARRAY EDiagSev  ,
Diag  ,
Tee_Min_Severity 
 

Definition at line 175 of file ncbidiag.cpp.

References eDiag_Critical, eDiag_Error, eDiag_Fatal, eDiag_Info, eDiag_Trace, and eDiag_Warning.

NCBI_PARAM_ENUM_DECL EDiagSev  ,
Diag  ,
Tee_Min_Severity 
 

NCBI_PARAM_ENUM_DEF_EX EDiagSev  ,
Diag  ,
Tee_Min_Severity  ,
kTeeMinSeverityDef  ,
eParam_NoThread  ,
DIAG_TEE_MIN_SEVERITY 
 

typedef NCBI_PARAM_TYPE Log  ,
NoCreate 
 

typedef NCBI_PARAM_TYPE Log  ,
Truncate 
 

typedef NCBI_PARAM_TYPE Diag  ,
Collect_Limit 
 

typedef NCBI_PARAM_TYPE Diag  ,
Tee_Min_Severity 
 

typedef NCBI_PARAM_TYPE Diag  ,
Tee_To_Stderr 
 

typedef NCBI_PARAM_TYPE Diag  ,
TraceLog_Rate_Period 
 

typedef NCBI_PARAM_TYPE Diag  ,
TraceLog_Rate_Limit 
 

typedef NCBI_PARAM_TYPE Diag  ,
ErrLog_Rate_Period 
 

typedef NCBI_PARAM_TYPE Diag  ,
ErrLog_Rate_Limit 
 

typedef NCBI_PARAM_TYPE Diag  ,
AppLog_Rate_Period 
 

typedef NCBI_PARAM_TYPE Diag  ,
AppLog_Rate_Limit 
 

typedef NCBI_PARAM_TYPE Diag  ,
Log_Size_Limit 
 

typedef NCBI_PARAM_TYPE Diag  ,
Assert_On_Abort 
 

typedef NCBI_PARAM_TYPE Diag  ,
Print_System_TID 
 

typedef NCBI_PARAM_TYPE Diag  ,
AutoWrite_Context 
 

typedef NCBI_PARAM_TYPE Diag  ,
Old_Post_Format 
 

bool OpenLogFileFromConfig CNcbiRegistry config,
string *  new_name
 

Definition at line 2049 of file ncbidiag.cpp.

References eDiagFile_All, kEmptyStr, and SetLogFile().

Referenced by CDiagContext::SetupDiag().

void RequestStopWatchTlsCleanup CStopWatch value,
void * 
 

Definition at line 1825 of file ncbidiag.cpp.

const char* s_AppStateToStr EDiagAppState  state  ) 
 

Definition at line 823 of file ncbidiag.cpp.

Referenced by CDiagContext::GetProperty(), and CDiagContext::WriteStdPrefix().

bool s_CanOpenLogFile const string &  file_name  ) 
 

Definition at line 4616 of file ncbidiag.cpp.

References CDirEntry::CreateAbsolutePath(), CDirEntry::GetDir(), and CDirEntry::GetMode().

Referenced by CFileDiagHandler::SetLogFile().

static bool s_CheckDiagFilter const CException ex,
EDiagSev  sev,
const char *  file
[static]
 

Definition at line 4972 of file ncbidiag.cpp.

References eDiag_Fatal, eDiag_Trace, eDiagFilter_Accept, eDiagFilter_None, s_PostFilter, and s_TraceFilter.

Referenced by CNcbiDiag::x_Put().

CStreamDiagHandler_Base* s_CreateHandler const string &  fname,
bool failed
 

Definition at line 4640 of file ncbidiag.cpp.

Referenced by CFileDiagHandler::SetLogFile().

void s_FormatStackTrace CNcbiOstream os,
const CStackTrace trace
 

Definition at line 5101 of file ncbidiag.cpp.

References trace.

Referenced by CNcbiDiag::Put().

ios::openmode s_GetLogOpenMode void   ) 
 

Definition at line 2042 of file ncbidiag.cpp.

References CDiagContext::GetLogTruncate(), and out().

Uint8 s_GetThreadId void   )  [inline]
 

Definition at line 557 of file ncbidiag.cpp.

References CThreadSystemID::GetCurrent(), CThread::GetSelf(), and CThreadSystemID::m_ID.

bool s_IsSpecialLogName const string &  name  ) 
 

Definition at line 4498 of file ncbidiag.cpp.

Referenced by SetLogFile(), and CFileDiagHandler::SetLogFile().

bool s_ParseErrCodeInfoStr string &  str,
const SIZE_TYPE  line,
int &  x_code,
int &  x_severity,
string &  x_message,
bool x_ready
 

Definition at line 5471 of file ncbidiag.cpp.

References ERR_POST_X, kEmptyStr, NPOS, NStr::Split(), NStr::StringToInt(), CNcbiDiag::StrToSeverityLevel(), NStr::TruncateSpaces(), and NStr::UInt8ToString().

int s_ParseInt const string &  message,
size_t &  pos,
size_t  width,
char  sep
 

Definition at line 2887 of file ncbidiag.cpp.

References eUnknown, and NCBI_THROW.

Referenced by SDiagMessage::ParseMessage().

CTempString s_ParseStr const string &  message,
size_t &  pos,
char  sep,
bool  optional = false
 

Definition at line 2918 of file ncbidiag.cpp.

References eUnknown, and NCBI_THROW.

Referenced by SDiagMessage::ParseMessage().

static TDiagPostFlags s_SetDiagPostAllFlags TDiagPostFlags flags,
TDiagPostFlags  new_flags
[static]
 

Definition at line 4051 of file ncbidiag.cpp.

References eDPF_Default.

Referenced by SetDiagPostAllFlags(), and SetDiagTraceAllFlags().

static void s_SetDiagPostFlag TDiagPostFlags flags,
EDiagPostFlag  flag
[static]
 

Definition at line 4066 of file ncbidiag.cpp.

References eDPF_Default, and s_MergeLinesSetBySetupDiag.

Referenced by SetDiagPostFlag(), and SetDiagTraceFlag().

EDiagAppState s_StrToAppState const string &  state  ) 
 

Definition at line 828 of file ncbidiag.cpp.

References eDiagAppState_AppBegin, and eDiagAppState_RequestEnd.

Referenced by SDiagMessage::ParseMessage(), and CDiagContext::SetProperty().

static void s_ThreadDataSafeStaticCleanup void *   )  [static]
 

Definition at line 577 of file ncbidiag.cpp.

References eDeinitialized.

static void s_UnsetDiagPostFlag TDiagPostFlags flags,
EDiagPostFlag  flag
[static]
 

Definition at line 4078 of file ncbidiag.cpp.

References eDPF_Default, and s_MergeLinesSetBySetupDiag.

Referenced by UnsetDiagPostFlag(), and UnsetDiagTraceFlag().

const char* str_rev_str const char *  begin_str,
const char *  end_str,
const char *  str_search
 

Definition at line 317 of file ncbidiag.cpp.

Referenced by CDiagCompileInfo::ParseCurrFunctName().

bool x_IsEncodableChar char  c  )  [inline]
 

Definition at line 2989 of file ncbidiag.cpp.


Variable Documentation

const TDiagPostFlags kApplogDiagPostFlags
 

Initial value:

Definition at line 1602 of file ncbidiag.cpp.

const char* kDiagTimeFormat = "Y-M-DTh:m:s.l" [static]
 

Definition at line 1774 of file ncbidiag.cpp.

const int kDiagW_AppState = 2 [static]
 

Definition at line 1779 of file ncbidiag.cpp.

const int kDiagW_Client = 15 [static]
 

Definition at line 1783 of file ncbidiag.cpp.

const int kDiagW_Host = 15 [static]
 

Definition at line 1782 of file ncbidiag.cpp.

const int kDiagW_PID = 5 [static]
 

Definition at line 1776 of file ncbidiag.cpp.

const int kDiagW_RID = 4 [static]
 

Definition at line 1778 of file ncbidiag.cpp.

const int kDiagW_Session = 24 [static]
 

Definition at line 1784 of file ncbidiag.cpp.

const int kDiagW_SN = 4 [static]
 

Definition at line 1780 of file ncbidiag.cpp.

const int kDiagW_TID = 3 [static]
 

Definition at line 1777 of file ncbidiag.cpp.

const int kDiagW_UID = 16 [static]
 

Definition at line 1781 of file ncbidiag.cpp.

const char* kExtraTypeArgName = "NCBIEXTRATYPE" [static]
 

Definition at line 1677 of file ncbidiag.cpp.

const char* kLogName_Memory = "MEMORY" [static]
 

Definition at line 1982 of file ncbidiag.cpp.

Referenced by CDiagContext::SetupDiag().

const char* kLogName_None = "NONE" [static]
 

Definition at line 1977 of file ncbidiag.cpp.

Referenced by CFileDiagHandler::SetLogFile(), and CDiagContext::SetupDiag().

const char* kLogName_Stderr = "STDERR" [static]
 

Definition at line 1980 of file ncbidiag.cpp.

Referenced by CreateDefaultDiagHandler(), CFileDiagHandler::SetLogFile(), and CDiagContext::SetupDiag().

const char* kLogName_Stdout = "STDOUT" [static]
 

Definition at line 1979 of file ncbidiag.cpp.

Referenced by CDiagContext::SetupDiag().

const char* kLogName_Stream = "STREAM" [static]
 

Definition at line 1981 of file ncbidiag.cpp.

const char* kLogName_Unknown = "UNKNOWN" [static]
 

Definition at line 1978 of file ncbidiag.cpp.

Referenced by CDiagHandler::GetLogName().

const int kLogReopenDelay = 60
 

Definition at line 4386 of file ncbidiag.cpp.

Referenced by CFileDiagHandler::Post(), CFileHandleDiagHandler::Post(), and CFileDiagHandler::Reopen().

const EDiagSev kTeeMinSeverityDef
 

Initial value:

Definition at line 185 of file ncbidiag.cpp.

const char* kUnknown_App = "UNK_APP" [static]
 

Definition at line 1789 of file ncbidiag.cpp.

const char* kUnknown_Client = "UNK_CLIENT" [static]
 

Definition at line 1787 of file ncbidiag.cpp.

const char* kUnknown_Host = "UNK_HOST" [static]
 

Definition at line 1786 of file ncbidiag.cpp.

const char* kUnknown_Session = "UNK_SESSION" [static]
 

Definition at line 1788 of file ncbidiag.cpp.

const char* s_AppStateStr[] [static]
 

Initial value:

 {
    "NS", "AB", "A", "AE", "RB", "R", "RE"
}

Definition at line 819 of file ncbidiag.cpp.

CDiagHandler* s_DefaultHandler = CreateDefaultDiagHandler()
 

Definition at line 2394 of file ncbidiag.cpp.

Referenced by CreateDefaultDiagHandler(), and IsSetDiagHandler().

void* s_DiagHandlerInitializer = InitDiagHandler()
 

Definition at line 2401 of file ncbidiag.cpp.

bool s_DiagPostFlagsInitialized = false [static]
 

Definition at line 2344 of file ncbidiag.cpp.

CSafeStaticPtr<CDiagRecycler> s_DiagRecycler [static]
 

Definition at line 544 of file ncbidiag.cpp.

const char s_ExtraEncodeChars[256][4] [static]
 

Definition at line 2952 of file ncbidiag.cpp.

bool s_FinishedSetupDiag = false [static]
 

Definition at line 215 of file ncbidiag.cpp.

Referenced by CDiagContext::SetUseRootLog(), CDiagContext::sx_ThreadDataTlsCleanup(), and CDiagContext::x_FinalizeSetupDiag().

bool s_MergeLinesSetBySetupDiag = false [static]
 

Definition at line 216 of file ncbidiag.cpp.

Referenced by s_SetDiagPostFlag(), and s_UnsetDiagPostFlag().

const TDiagPostFlags s_NewDefaultPostFlags [static]
 

Initial value:

Definition at line 2337 of file ncbidiag.cpp.

const TDiagPostFlags s_OldDefaultPostFlags [static]
 

Initial value:

Definition at line 2333 of file ncbidiag.cpp.

CSafeStaticPtr<CDiagFilter> s_PostFilter [static]
 

Definition at line 311 of file ncbidiag.cpp.

Referenced by CNcbiDiag::CheckFilters(), s_CheckDiagFilter(), and SetDiagFilter().

TDiagPostFlags s_PostFlags = 0 [static]
 

Definition at line 2343 of file ncbidiag.cpp.

bool s_SplitLogFile = false [static]
 

Definition at line 4484 of file ncbidiag.cpp.

volatile EThreadDataState s_ThreadDataState = eUninitialized [static]
 

Definition at line 575 of file ncbidiag.cpp.

CSafeStaticPtr<CDiagFilter> s_TraceFilter [static]
 

Definition at line 310 of file ncbidiag.cpp.

Referenced by CNcbiDiag::CheckFilters(), s_CheckDiagFilter(), and SetDiagFilter().

FAbortHandler s_UserAbortHandler = 0 [static]
 

Definition at line 5391 of file ncbidiag.cpp.

Referenced by Abort().

bool s_UseRootLog = true [static]
 

Definition at line 214 of file ncbidiag.cpp.

Referenced by CDiagContext::SetupDiag(), and CDiagContext::SetUseRootLog().


Generated on Mon Dec 7 07:36:30 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Mon Dec 07 16:21:45 2009 by modify_doxy.py rev. 173732