logog is a portable C++ library to facilitate logging of real-time events in performance-oriented applications

Related tags

Logging logog
Overview

logog

logog is a highly portable C++ library to facilitate logging of real-time events in performance-oriented applications, such as games. It is especially appropriate for projects that have constrained memory and constrained CPU requirements.

See http://johnwbyrd.github.com/logog/ for more information and complete documentation.

General support and discussion is available at http://groups.google.com/group/logog . Development support and discussion is available at http://groups.google.com/group/logog-devel .

This project can be built using CMake, available from http://www.cmake.org . Local documentation can be generated with doxygen, available from http://www.doxygen.org .

The project is built regularly using Travis. The current status of the build is Build Status.

The license agreement for logog is viewable at http://johnwbyrd.github.com/logog/license.html .

Comments
  • Logog does not work with LOGOG_UNICODE

    Logog does not work with LOGOG_UNICODE

    If I define LOGOG_UNICODE, logog would not compile with various compile-time errors.

    for example:

    .\formatter.cpp(28) : error C2440: 'return' : cannot convert from 'const char [9]' to 'const LOGOG_CHAR *'

    opened by Cassilio 15
  • Getting 'logog::Object::operator new' error

    Getting 'logog::Object::operator new' error

    My project is document - multiple view type. If I am using Loglog in the CMainFrame class, I am getting compilation error:

    4>.\MainFrm.cpp(410) : error C2660: 'logog::Object::operator new' : function does not take 3 arguments

    when I am adding any logging macro such as WARN() or INFO.

    If I initialize LOGOG_INITIALIZE in the MainFrame construnctor and do LOGOG_SHUTDOWN in the distrunctor , and then use macros in other classes, say, CBatch class

    logog::LogFile myLogFile(" blah blah")

    WARN("Testing")

    compiles just fine, no errors or warnings.

    Could not reproduce this problem in a small standalone application.

    opened by Cassilio 12
  • Change log level at run time

    Change log level at run time

    This change allows you to change the log level at run time. The log level set at compile time cannot be changed at run time, obviously.

    I basically copied over the patch suggested by Luc Simard on Google Groups, along with some minor tweaks and a unit test.

    opened by ixe013 9
  • Move the generated documentation out of the source tree

    Move the generated documentation out of the source tree

    I propose to delete _doc/html_ at least from the master branch. It should be enough to have this in the _gh-pages_ branch.

    I propose this because I like to integrate logog into my own software as a git-subtree-subdirectory. The generated html documentation would increase the size of my repo significantly.

    opened by bilke 6
  • typos

    typos

    target.hpp, line 34, in the comments: occurring (double r) target.cpp: line 127, in the comments: outputs (remove ', lowercase) node.cpp, line 76, in the comments: if (not double f)

    opened by didito 4
  • Warning	C26495 Variable 'logog::Thread::m_Thread' is uninitialized. Always initialize a member variable (type.6).	At: thread.hpp	78

    Warning C26495 Variable 'logog::Thread::m_Thread' is uninitialized. Always initialize a member variable (type.6). At: thread.hpp 78

    Following the documentation.

    My project compiles and links properly.

    In my code:

    LOGOG_INITIALIZE();
    
    INFO("Core::initialize");
    

    At runtime I get the following warning:

    Warning C26495 Variable 'logog::Thread::m_Thread' is uninitialized. Always initialize a member variable (type.6).

    At: thread.hpp 78

    Just reporting so it can be fixed at some point.

    Thank you.

    opened by rbento 3
  • Allow instantiating a LogFile without the filename.

    Allow instantiating a LogFile without the filename.

    This is useful for initializing the logging system before you know the intended filename; However, you must then call SetFile(fileName) before doing any logging.

    opened by just6979 3
  • Not able to

    Not able to "make"

    Following were the output of "cmake" command: -- The C compiler identification is GNU 4.8.4 -- The CXX compiler identification is GNU 4.8.4 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - failed -- Check for working CXX compiler: /usr/bin/g++ -- Check for working CXX compiler: /usr/bin/g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - found -- Found Threads: TRUE
    -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Configuring done -- Generating done -- Build files have been written to: /home/Desktop/logog-master/build

    After that, following were the output of "make" command in the build folder: Scanning dependencies of target logog [ 6%] Building CXX object CMakeFiles/logog.dir/src/api.cpp.o [ 12%] Building CXX object CMakeFiles/logog.dir/src/checkpoint.cpp.o [ 18%] Building CXX object CMakeFiles/logog.dir/src/formatter.cpp.o [ 25%] Building CXX object CMakeFiles/logog.dir/src/lobject.cpp.o [ 31%] Building CXX object CMakeFiles/logog.dir/src/lstring.cpp.o [ 37%] Building CXX object CMakeFiles/logog.dir/src/message.cpp.o [ 43%] Building CXX object CMakeFiles/logog.dir/src/mutex.cpp.o [ 50%] Building CXX object CMakeFiles/logog.dir/src/node.cpp.o [ 56%] Building CXX object CMakeFiles/logog.dir/src/platform.cpp.o [ 62%] Building CXX object CMakeFiles/logog.dir/src/socket.cpp.o [ 68%] Building CXX object CMakeFiles/logog.dir/src/statics.cpp.o [ 75%] Building CXX object CMakeFiles/logog.dir/src/target.cpp.o [ 81%] Building CXX object CMakeFiles/logog.dir/src/timer.cpp.o [ 87%] Building CXX object CMakeFiles/logog.dir/src/topic.cpp.o [ 93%] Building CXX object CMakeFiles/logog.dir/src/unittest.cpp.o Linking CXX static library liblogog.a [ 93%] Built target logog Scanning dependencies of target test-logog [100%] Building CXX object CMakeFiles/test-logog.dir/test/test.cpp.o Linking CXX executable test-logog CMakeFiles/test-logog.dir/test/test.cpp.o: In function logog::Thread::Start()': test.cpp:(.text._ZN5logog6Thread5StartEv[_ZN5logog6Thread5StartEv]+0x29): undefined reference topthread_create' CMakeFiles/test-logog.dir/test/test.cpp.o: In function logog::Thread::WaitFor(logog::Thread const&)': test.cpp:(.text._ZN5logog6Thread7WaitForERKS0_[_ZN5logog6Thread7WaitForERKS0_]+0x1c): undefined reference topthread_join' collect2: error: ld returned 1 exit status make[2]: *** [test-logog] Error 1 make[1]: *** [CMakeFiles/test-logog.dir/all] Error 2 make: *** [all] Error 2

    Any ideas why this might be happening?

    opened by yashoteja 3
  • Added AIX 6.1 / XLC 10.1 support

    Added AIX 6.1 / XLC 10.1 support

    Hi We're looking at using logog on AIX with IBM's XLC compiler I've added some minor changes to platform.hpp so that this support is available automatically. The code compiles without warnings and the tests run without failure.

    opened by bdellegrazie 3
  • double dot is no good separator

    double dot is no good separator

    The double dot used for field separation cannot be automatically parsed correctly by e.g. log viewers, because time information also contains double dots. A unique separator (like '|') would not cause this.

    opened by zeugs 3
  • A test failed on my own filter with a level (different to DefaultFilter).

    A test failed on my own filter with a level (different to DefaultFilter).

    As http://johnwbyrd.github.com/logog/filters.html descripted,
    

    "You can get a reference to the default filter with GetDefaultFilter(). You can also instantiate your own filters before you start logging messages and messages will automatically find and route through them as well."

    But I failed on my own filter with a level (different to DefaultFilter).  
    
    My purpose is to make 2 targets work with individual levels. I have no idea to implement it.
    
    opened by AhTekSo 3
  • logogConfig.cmake missing

    logogConfig.cmake missing

    To be able to integrate logog into other cmake build processes easily, a logogConfig.cmake file containing information about include and link pathes is necessary. See

    http://www.vtk.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file for further informations.

    Feature Request 
    opened by cato- 1
Owner
John Byrd
John Byrd
Reckless logging. Low-latency, high-throughput, asynchronous logging library for C++.

Introduction Reckless is an extremely low-latency, high-throughput logging library. It was created because I needed to perform extensive diagnostic lo

Mattias Flodin 441 Sep 22, 2022
Colorful Logging is a simple and efficient library allowing for logging and benchmarking.

Colorful-Logging "Colorful Logging" is a library allowing for simple and efficient logging as well for benchmarking. What can you use it for? -Obvious

Mateusz Antkiewicz 1 Feb 17, 2022
A Fast and Convenient C++ Logging Library for Low-latency or Real-time Environments

xtr What is it? XTR is a C++ logging library aimed at applications with low-latency or real-time requirements. The cost of log statements is minimised

null 10 Jul 17, 2022
Portable, simple and extensible C++ logging library

Plog - portable, simple and extensible C++ logging library Pretty powerful logging library in about 1000 lines of code Introduction Hello log! Feature

Sergey Podobry 1.5k Sep 23, 2022
Netdata's distributed, real-time monitoring Agent collects thousands of metrics from systems, hardware, containers, and applications with zero configuration.

Netdata is high-fidelity infrastructure monitoring and troubleshooting. It runs permanently on all your physical/virtual servers, containers, cloud deployments, and edge/IoT devices, and is perfectly safe to install on your systems mid-incident without any preparation.

netdata 60.7k Sep 21, 2022
Yet another logging library.

Blackhole - eating your logs with pleasure Blackhole is an attribute-based logger with strong focus on gaining maximum performance as possible for suc

Evgeny Safronov 188 Sep 20, 2022
A lightweight C++ logging library

Loguru: a lightweight and flexible C++ logging library. At a glance Documentation Documentation can be found at https://emilk.github.io/loguru/index.h

Emil Ernerfeldt 1.4k Sep 23, 2022
Fast C++ logging library.

spdlog Very fast, header-only/compiled, C++ logging library. Install Header only version Copy the source folder to your build tree and use a C++11 com

Gabi Melman 15.6k Sep 19, 2022
Asynchronous Low Latency C++ Logging Library

Quill Asynchronous Low Latency C++ Logging Library Introduction Features Performance Supported Platforms And Compilers Basic Usage CMake Integration D

Odysseas Georgoudis 650 Sep 16, 2022
Cute Log is a C++ Library that competes to be a unique logging tool.

Cute Log Cute Log is a C++ Library that competes to be a unique logging tool. Version: 2 Installation Click "Code" on the main repo page (This one.).

null 4 Aug 12, 2021
fmtlog is a performant fmtlib-style logging library with latency in nanoseconds.

fmtlog fmtlog is a performant asynchronous logging library using fmt library format. Features Faster - lower runtime latency than NanoLog and higher t

Meng Rao 393 Sep 16, 2022
Minimalistic logging library with threads and manual callstacks

Minimalistic logging library with threads and manual callstacks

Sergey Kosarevsky 21 Jun 24, 2022
Boost Logging library

Boost.Log, part of collection of the Boost C++ Libraries, provides tools for adding logging to libraries and applications. Directories build - Boost.L

Boost.org 154 Sep 15, 2022
C++ implementation of the Google logging module

Google Logging Library The Google Logging Library (glog) implements application-level logging. The library provides logging APIs based on C++-style st

Google 5.7k Sep 25, 2022
log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.

% log4cplus README Short Description log4cplus is a simple to use C++17 logging API providing thread--safe, flexible, and arbitrarily granular control

null 1.3k Sep 23, 2022
Uberlog - Cross platform multi-process C++ logging system

uberlog uberlog is a cross platform C++ logging system that is: Small Fast Robust Runs on Linux, Windows, OSX MIT License Small Two headers, and three

IMQS Software 14 Aug 15, 2022
Sagan - a multi-threads, high performance log analysis engine

Sagan - Sagan is a multi-threads, high performance log analysis engine. At it's core, Sagan similar to Suricata/Snort but with logs rather than network packets.

Quadrant Information Security 70 Sep 12, 2022