Initial commit of source code
This commit is contained in:
91
src/misc/logConsoleGUI/logConsoleGUI.h
Normal file
91
src/misc/logConsoleGUI/logConsoleGUI.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/* --- logConsoleGUI.h -----------------------------------------
|
||||
System: Log system for gui applications
|
||||
Status: Version 1.0 Release 2
|
||||
Language: C++
|
||||
|
||||
(c) Copyright SD-Innovation 2016
|
||||
|
||||
Address:
|
||||
SD-INNOVATION SAS
|
||||
Site Eiffel Energie / ZAC Ban La Dame
|
||||
48, square Eugène Herzog
|
||||
54390 FROUARD
|
||||
FRANCE
|
||||
|
||||
Author: Sylvain Schneider
|
||||
E-Mail: s.schneider@sd-innovation.fr
|
||||
|
||||
Description: Header file for logConsoleGUI
|
||||
This class allows you to attach GUI application to text console
|
||||
or file to write log informations.
|
||||
|
||||
Thread Safe: No
|
||||
Platform Dependencies: None (i.e.: Linux/Intel, IRIX/Mips, Solaris/SPARC)
|
||||
Compiler Options:
|
||||
|
||||
Change History:
|
||||
Date Author Description
|
||||
2016-09-28 Sylvain Schneider Closing the console window when it released
|
||||
2016-08-23 Sylvain Schneider First version
|
||||
------------------------------------------------------------- */
|
||||
|
||||
#ifndef LOGCONSOLEGUI_H
|
||||
#define LOGCONSOLEGUI_H
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <memory>
|
||||
#include <stdint.h>
|
||||
|
||||
enum e_logLevel
|
||||
{
|
||||
level_DEBUG_COMMUNICATION, // Information useful to developers for debugging the communication application
|
||||
level_DEBUG, // Information useful to developers for debugging the application
|
||||
level_INFORMATIONS, // Normal operational messages that require no action (An application has started, paused or ended successfully)
|
||||
level_NOTICE, // Events that are unusual, but not error conditions
|
||||
level_WARNING, // May indicate that an error will occur if action is not taken
|
||||
level_ERROR, // Error conditions
|
||||
level_CRITICAL, // Critical conditions
|
||||
level_ALERT, // Should be corrected immediately
|
||||
level_EMERGENCY, // Application is unusable
|
||||
};
|
||||
|
||||
namespace sdiTools
|
||||
{
|
||||
//--------------------------------------------------------------
|
||||
class logConsoleGUI
|
||||
{
|
||||
public:
|
||||
|
||||
public:
|
||||
logConsoleGUI(const std::string &logFilepath = ""); // Constructor
|
||||
virtual ~logConsoleGUI(); // Destructor
|
||||
|
||||
void openLogFile(const std::string &logFilepath); // Open log file
|
||||
void closeLogFile(); // Close log file
|
||||
int64_t getLogFileSize(); // Return opened log file size
|
||||
|
||||
void initConsole(bool attachOnly = false); // Init application console
|
||||
void releaseConsole(); // Release application console
|
||||
bool hasAttachedConsole(); // Returns true if console was attached, false otherwise
|
||||
|
||||
void disable_quickEditMode();
|
||||
void alwaysOnTop();
|
||||
|
||||
void log(const std::string &msg, // Log message into console and log file
|
||||
e_logLevel level = level_INFORMATIONS);
|
||||
virtual std::string header(); // Define header to console log
|
||||
|
||||
private:
|
||||
std::ofstream m_logFile;
|
||||
|
||||
FILE *m_stdoutFile = nullptr;
|
||||
FILE *m_stderrFile = nullptr;
|
||||
};
|
||||
//--------------------------------------------------------------
|
||||
} // namespace sdiTools
|
||||
|
||||
typedef std::unique_ptr<sdiTools::logConsoleGUI> t_logConsoleGUI;
|
||||
extern t_logConsoleGUI logConsole;
|
||||
|
||||
#endif // LOGCONSOLEGUI_H
|
||||
Reference in New Issue
Block a user