Protocol++® (Protocolpp®)  v5.7.0
log_policy_interface Class Reference

Detailed Description

Central logger class for Protocol++® (ProtocolPP®)

Supports logging levels for INFO, DEBUG, WARN, ERROR, and FATAL. The constructor allows colors to be defined at construction. Colors can also be updated at any time using the accessor functions The constructor requires the log file name and path, output can be sent to std::cout if requested (disabled by default), and the loglvl by default includes everything but DEBUG. The default color scheme is what I call the "phantom" color sceeen as it looks like charcoal grey on a black background See the constructor below:

jlogger(const std::string& name,
bool logstdout=false,
int loglvl=3,
jlogger::asciicolor debugclr=jlogger::asciicolor::MAGENTA,
jlogger::asciicolor infoclr=jlogger::asciicolor::BLACK,
jlogger::asciicolor warningclr=jlogger::asciicolor::YELLOW,
jlogger::asciicolor errorclr=jlogger::asciicolor::RED,
jlogger::asciicolor fatalclr=jlogger::asciicolor::RED,
jlogger::asciicolor passclr=jlogger::asciicolor::GREEN);

Additional methods are as follows

// set a new color for a type (DEBUGCLR, INFOCLR, WARNCLR, ERRCLR, FATALCLR, PASSCLR)
void set_color(std::string color, jlogger::asciicolor jcolor);
// return the corrent color for the give logging type
jlogger::asciicolor get_color(std::string color);
// Convert jlogger::asciicolor Enum to a string representation
std::string colorString = jlogger::toStr(jlogger::asciicolor jcolor);
// Convert string to jlogger::asciicolor Enum
jlogger::asciicolor colorEnum = jlogger::toEnum(std::string color);

Severity codes are typical for logging and are as follows

enum severity_t {
debug=1,
info,
warning,
error,
fatal,
pass
};

Possible color codes are the ASCII escape codes as follows

enum asciicolor {
BLACK=30,
RED=31,
GREEN=32,
YELLOW=33,
BLUE=34,
MAGENTA=35,
CYAN=36,
WHITE=37,
BRIGHTBLACK=90,
BRIGHTRED=91,
BRIGHTGREEN=92,
BRIGHTYELLOW=93,
BRIGHTBLUE=94,
BRIGHTMAGENTA=95,
BRIGHTCYAN=96,
BRIGHTWHITE=97
};

Color schemes that work well on a dark backgroud (DARK_THEME, PHANTOM_THEME) and light background (LIGHT_THEME), are shown below for the user

DARK_THEME

  • INFO - Light blue (cyan)
  • DEBUG - Dark blue
  • WARN - Yellow
  • ERROR - Red
  • FATAL - Magenta

LIGHT_THEME

  • INFO - Black
  • DEBUG - Dark blue
  • WARN - Blue
  • ERROR - Red
  • FATAL - Magenta

PHANTOM_THEME

  • INFO - Black
  • DEBUG - Magenta
  • WARN - Yellow
  • ERROR - Red
  • FATAL - Red
Protocol++® (ProtocolPP®) modified by : John Peter Greninger • © John Peter Greninger 2015-2023 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Licensing information can be found at www.protocolpp.com/license with use of the binary forms permitted provided that the following conditions are met:

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use (incidental or not) requires a fee-based license obtainable at www.protocolpp.com/shop
  • Academic or research use requires prior written and notarized permission from John Peter and Sheila Rocha Greninger

Use of the source code requires purchase of the source code. Source code can be purchased at www.protocolpp.com/shop

  • US Copyrights at https://www.copyright.gov/
    • TXu002059872 (Version 1.0.0)
    • TXu002066632 (Version 1.2.7)
    • TXu002082674 (Version 1.4.0)
    • TXu002097880 (Version 2.0.0)
    • TXu002169236 (Version 3.0.1)
    • TXu002182417 (Version 4.0.0)
    • TXu002219402 (Version 5.0.0)
    • TXu002272076 (Version 5.2.1)
    • TXu002383571 (Version 5.4.3)

The name of its contributor may not be used to endorse or promote products derived from this software without specific prior written permission and licensing

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE


The documentation for this class was generated from the following file: