VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDebugLog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvUtil/vrvUtil.h>
12 #include <vlutil/vlPrint.h>
13 #include <vlutil/vlExceptions.h>
14 #include <ostream>
15 
16 namespace makVrv
17 {
18  #define DT_LOG_WARN log().out(DtDebugLog::Warning) << "Warning: " << __FUNCTION__ << ": "
19  #define DT_LOG_INFO log().out(DtDebugLog::Information) << "Info: " << __FUNCTION__ << ": "
20  #define DT_LOG_DEBUG log().out(DtDebugLog::Debug) << "Debug: " << __FUNCTION__ << ": "
21  #define DT_LOG_OUT log().out()
22  #define DT_LOG_LEVEL(a) log().levelWillPrint(a)
23 
38  {
39  public:
40 
42  {
43  Warning = 1,
44  Information = 2,
45  Debug = 4,
46  PrintLevel_End = 5
47  };
48 
50  DtDebugLog(const std::string& filename);
51 
53  virtual ~DtDebugLog();
54 
58  {
59  return level() >= alevel;
60  }
61 
63  virtual void setLevel(DtDebugLog::PrintLevel alevel);
64 
66  virtual void setOutputStream(DtOutputStream* stream);
67 
69  virtual DtDebugLog::PrintLevel level();
70 
73  {
74  if(levelWillPrint(level))
75  return *myOutput;
76  else
77  return *myEmptyOutput;
78  }
79 
81  DtOutputStream* outputStream();
82 
83  protected:
87 
89  DtFilePrinter* myFilePrinter;
90 
92  DtOutputStreamBuffer* myBuffer;
93 
95  DtOutputStreamBuffer* myEmptyBuffer;
96 
102 
106  DtOutputStream* myOutput;
107 
111  std::ostream* myEmptyOutput;
112  };
113 }
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
bool levelWillPrint(DtDebugLog::PrintLevel alevel)
Check to see if the provided level would print with the current level.
Definition: DtDebugLog.h:57
std::ostream & out(DtDebugLog::PrintLevel level=DtDebugLog::Information)
Get the log output.
Definition: DtDebugLog.h:72
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
This is a simple class for logging information to a file. To be used, the caller must specify a loggi...
Definition: DtDebugLog.h:37
PrintLevel
Definition: DtDebugLog.h:41
Contains DLL export macros.
DtFilePrinter * myFilePrinter
The file printer to log to.
Definition: DtDebugLog.h:89
DtOutputStream * myOutput
The output stream that does all the work. When the stream is created, its threshold is set to myPrint...
Definition: DtDebugLog.h:106
Definition: DtDebugLog.h:44
DtOutputStreamBuffer * myBuffer
The buffer used by the output stream.
Definition: DtDebugLog.h:92
std::ostream * myEmptyOutput
The &#39;black hole&#39; output stream When the stream is created, its threshold is set to myPrintLevelThresh...
Definition: DtDebugLog.h:111
voidpf stream
Definition: ioapi.h:39
PrintLevel myLevel
variable used to decide whether send output to the &#39;works always&#39; stream (myOutput) or the &#39;works ne...
Definition: DtDebugLog.h:86
DtOutputStreamBuffer * myEmptyBuffer
The buffer used by the empty output stream.
Definition: DtDebugLog.h:95
int myPrintLevelThresholdRef
The dummy &#39;global notify level&#39; that our DtOutputStream&#39;s will compare their configured thresholds to...
Definition: DtDebugLog.h:101

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)