* restore original sigaction in restoreSignalHandler
- Save original sigactions in a map called gSavedSigActions
- In restoreSignalHandler, do nothing if there is no saved sigaction.
If there is a saved sigaction, then re-install it.
- Fixes issue #253
* fix bug found in code review of PR #254
* add functions for reporting sigaction errors
- Factor out reportSigactionError functions from functions that
call sigaction to allow unit testing.
- Use strsignal libc function to convert from signal number to name
to eliminate chance of not finding the name in {g,k}Signals maps.
* cleanup. perror doesn't need a wrapper. put code under test
* Added thread ID configurable through API calls. Left to do g3sinks, documentation and some corner test cases for CHECK, LOG(FATAL) and FATAL signal
* improve test script, break if error
* easier to use API. Api docs added
* Update API.markdown
* Update API.markdown
* Update API.markdown
* updated readme with details for overriding default for "full details"
* updated custom sink with custom formatting example
* Cross-comoiling: Version readout fixed
Test.cmake: Path handling consistent
* ".x" syntax in variable checking removed
* Use G3LOG_DEBUG also in linux-specific code
* Fixed error when linux and shared library is on
* Fixed linux/windows shared lib handling: FATAL_ERROR for wrong cmake
version and no message in linux
* unit tests running with windows shared dll
* CMake automatically uses DLL runtime - remove cmake entries modifying
compiler flags
* missing DBUG vs DEBUG issue in Linux
* generated header added
* correction in CMake: Set HEADER_FILES correctly
* added static library option
* switched to powershell and included WORKING_DIRECTORY
* powershell use in windows and WORKING_DIRECTORY instead of cd
* Fixed appveyor.yml to use Release configuration and run unit tests
* trying to make appveyor work again ...
* make sure ERRORLEVEL is 0 when unit tests run successfully
* Still trying to fix appveyor ...
* Defaulting to shared library in linux, too
* Removed runtime loading test when g3log is not a shared library in linux
* Run unit tests verbosly using ctest.exe
* Disabled AggressiveThreadCallsDuringShutdown test
* Revert "Run unit tests verbosly using ctest.exe" (accidental commit)
This reverts commit b30513450d.
* re-committing valid parts of reverted commit
* DBUG vs DEBUG fix moved to generated_definitions.hpp
* cleanup shared/static option
* clarify cmake build types regardless of type
* Added compile test for DEBUG and DBUG
* put back formatting
* Removed commented out /MD switches for MSVC
* in progress. now using std::chrono
* in progress, not working but defined how to fix it - broken unit tests
* working - verified on VM. Unit tests not yet updated accordintly
* fixed all tests
* fixed formatting
* adjusted timezone during testing
* adjusted test for timezone
* static build with MS libs; remove vc11 support from cmake
* support AMD processor on winXp
* mingw build
* support older versions
* removed cmake warnings
* fix cmake >= 3.1 warnings (CMP0054)
* add target_include_directories - in projects that depend on g3log, do not need to specify include_directories
* Improved CPackage installation
* cleanup of build and test scripts
* c++14 gives for cleaner syntax
* build cleanup libg3logger.so will be a link to the actual libg3logger.so.<major><minor><build>. Only shared libraries from now on
* disableAll for log levels
* new setLogLevel impl
* cleaned up levels, now it should be easy for the user to understand how to add custom levels
addLogLevel again resets the log level to the passed enable_state as even requesting the level before adding it would otherwise lead to unexpectedly not setting a "new" level to the passed state. We now assume setLogLevel is not called before addLogLevel without considering this behavior.
* Added "removeSink" method and related functionality to LogWorker API
* Added a new API for plugging in custom Timestamp generator.
* Revert "Added "removeSink" method and related functionality to LogWorker API"
This reverts commit c9cee5d9a0.
* Dropping shared_ptr<Timestamp> in log messages and using regular vars
* Moving to standard timespec struct from custom Timestamp
* Wiring timespec timestamps with formating routine
* Falling back to clock_gettime
* Reverting g3 API changes
* Optimizing format string generation
* Removed _microseconds from LogMessage
* Implemented sec fractional format key
* Optimization of format string generation
* Adjusting comments
* Refining localtime_formatted by introducing two helper functions
* refactored and simplified code
* fixed up some commented away unit tests
* refactoring message specifics tests to it's own test
* Use gcc 4.9
* C++14 for Linux
* Update .travis.yml
* Update buildAndRunTests.sh
* lower case in `-std=c++14`
* -lrt flag for gcc
* Added support for high precision clock on Linux/gcc (already there now for OSX). Windows is still missing
* intermediate comments
* Clarified for some code readers the mysterious use of assert in an expression that is always true
* refactored + renamed functions and constants. Added unit test for retrieving fractional type
* committing changes previously fixed - finished unit testing for g3::internal::time::GetFractional(..)
* added unit test for fractional to string
* added missing unit tests for localtime_formatted
* fixed? nano / microsec functionality to timer
* test
Due to popular request I have added the possibility to put in your own custom log levels. Due to performance regards changes to the log levels should ONLY be done
in a single thread context (initialiation) for that reason the namespace
used to "setLogLevel" is named appropriately
i.e. use: g3::only_change_at_initialization::setLogLevel(...)
1) Breaking change: g3 namespace replaces g2
2) g2log.hpp remains in src/g2log.hpp... but now all it does is to include the g3log.hpp, etc
3) ALL HEADER FILES ARE IN src/g3log/ while all .cpp and .ipp files are in /src (exception for g2log.hpp)
This should make it EASIER for clients to copy/install the header files to the new location. It greatly simplifies
rpm and cpackage installationsw
All other are under g3log. Example: #include <g3log/time.hpp> #include <g3log/g3log.hpp> etc
This makes sure that the package manager (to be used soon) does NOT clutter any /usr/local/include space
instead all the includes will be in /usr/local/include/g3log (or similar)