Skip to content

Commit 98a713e

Browse files
committed
Version 1702, Revision 0
1 parent 496e975 commit 98a713e

File tree

463 files changed

+65292
-34150
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

463 files changed

+65292
-34150
lines changed

.gitignore

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,27 @@
22
## files generated by popular Visual Studio add-ons.
33
# ALox specific
44
.private
5-
5+
.idea
66

77
build/ide.java.eclipse/ALox-Java-1.6-Test/bin.pruned
88
build/ide.java.eclipse/ALox-Java-Android-Test-Release-Log/proguard
99
build/ide.java.eclipse/ALox-Java-Android-Test-Release-Log/gen
1010
build/ide.java.eclipse/ALox-Java-1.6-Test/unittest_testiniFile.cfg*
11+
build/cmake.cpp/cotire.cmake
12+
build/cmake.cpp/unittests/DownloadProject.cmake
13+
build/cmake.cpp/unittests/DownloadProject.CMakeLists.cmake.in
14+
build/_builds_/
1115
docs/ALox.JAVA/generated/
1216
docs/ALox.CPP/generated/
1317
docs/ALox.CS/generated/
18+
docs/doxygen/dot
19+
docs/doxygenDotFixer.cfg
1420
*.zip
1521
*.userprefs
1622

17-
build/_builds_/
18-
docs/doxygen/dot
19-
docs/doxygenDotFixer.cfg
2023

2124
# not yet released
22-
tools/ideplugins/QTCreator/DebugHelpers/__pycache__
25+
__pycache__
2326
tools/unreleased
2427

2528

@@ -122,8 +125,8 @@ publish/
122125
*.pubxml
123126

124127
# NuGet Packages Directory
125-
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
126-
#packages/
128+
## If you have NuGet Package Restore enabled, uncomment the next line
129+
packages/
127130

128131
# Windows Azure Build Output
129132
csx
@@ -179,5 +182,5 @@ Desktop.ini
179182
$RECYCLE.BIN/
180183

181184
# Mac desktop service store files
182-
.DS_Store
185+
*.DS_Store
183186
/html/

LICENSE.txt

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
1-
The MIT License (MIT)
2-
Copyright (c) 2013-2016 A-Worx GmbH
1+
Boost Software License - Version 1.0 - August 17th, 2003
32

4-
Permission is hereby granted, free of charge, to any person obtaining a copy of
5-
this software and associated documentation files (the "Software"), to deal in the
6-
Software without restriction, including without limitation the rights to use, copy,
7-
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
8-
and to permit persons to whom the Software is furnished to do so, subject to the
9-
following conditions:
3+
Permission is hereby granted, free of charge, to any person or organization
4+
obtaining a copy of the software and accompanying documentation covered by
5+
this license (the "Software") to use, reproduce, display, distribute,
6+
execute, and transmit the Software, and to prepare derivative works of the
7+
Software, and to permit third-parties to whom the Software is furnished to
8+
do so, all subject to the following:
109

11-
The above copyright notice and this permission notice shall be included in all
12-
copies or substantial portions of the Software.
10+
The copyright notices in the Software and this entire statement, including
11+
the above license grant, this restriction and the following disclaimer,
12+
must be included in all copies of the Software, in whole or in part, and
13+
all derivative works of the Software, unless such copies or derivative
14+
works are solely in the form of machine-executable object code generated by
15+
a source language processor.
1316

14-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15-
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
16-
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
17-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
19-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20+
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21+
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23+
DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,40 @@ Please find all about the **ALox Logging Library**, including
1010
at the [ALox Homepage](http://alexworx.github.io/ALox-Logging-Library).
1111

1212

13-
##Overview ##
13+
## Overview ##
1414

15-
ALox is a small and efficient software library that provides an ecosystem to support structured and organized log output.
15+
ALox is a software library providing an ecosystem for structured and organized log output.
1616

1717
ALox is available as [ALox for C++ 11](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/cppmainpage.html), [ALox for C#](http://alexworx.github.io/ALox-Logging-Library/cs_ref/csmainpage.html) and [ALox for Java](http://alexworx.github.io/ALox-Logging-Library/java_ref/javamainpage.html).
1818

1919
To reach this goal, ALox is featured by **ALib** (see ALib for [C++](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/namespaceaworx_1_1lib.html),[C#](http://alexworx.github.io/ALox-Logging-Library/cs_ref/namespacecs_1_1aworx_1_1lib.html),[Java](http://alexworx.github.io/ALox-Logging-Library/java_ref/namespacecom_1_1aworx_1_1lib.html)), which is a basic utility library that among other goals
2020
provides *'source-compatible'* types for the three languages.
2121

22-
ALox attempts to make logging as easy and lightweight as possible. We want you to **stop adding temporary debug output lines** into your code. Instead, write (with less effort!) short, nice and readable *ALox statements* that live in your code as if they were comment lines. Let ALox do the rest: Add meta information to the output, format the output, filter output based on verbosity level and based on your current topic of interest. Finally, get it all *pruned* out of your release executable, same as your source comments.
22+
ALox attempts to make logging as easy and intuitive as possible. We want you to **stop adding temporary debug output lines** into your code. Instead, write (with less effort!) short, nice and readable *ALox statements* that live in your code as if they were comment lines. Let ALox do the rest: Add meta information to the output, format the output, filter output based on verbosity level and based on your current topic of interest. Finally, get it all *pruned* out of your release executable, same as your source comments.
2323

2424
On the other end of the list, ALox enables **release logging** for productive applications to collect mission critical **metrics from the field**.
2525

26-
This is **Version 1607**. In other versioning schemes, this would probably have been version **2.1**.
26+
This is **Version 1702**.
2727

28-
##Features##
28+
## Features ##
2929

30-
* **Open source**, MIT License.
31-
* Jump-start **tutorials** for [ALox for C++](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/cpptutorial.html),[ALox for C#](http://alexworx.github.io/ALox-Logging-Library/cs_ref/cstutorial.html) and [ALox for Java](http://alexworx.github.io/ALox-Logging-Library/java_ref/javatutorial.html)) and **Sample Projects**.
30+
* Available for **C++ 11 ** (GNU/Linux, Windows OS, macOS), **C#** (.Net, Windows, Linux, Microsoft, Mono) and **Java**
31+
(with Android support and extensions).
3232

33-
* **Auto-configuration** (if not configured by your code) based on OS (GNU/Linux, Windows) and **detecting IDE** (VStudio, Eclipse, QTCreator, etc.). Minimal intrusiveness in respect to *cluttering* your code and what you need to make it really work.
33+
* **Free software**, published under Boost Software License.
3434

35-
* Formatted, **colorful, configurable log output** with support for ANSI compatible consoles and Windows OS consoles.
35+
* Jump-start **tutorials** for [ALox for C++](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/cpptutorial.html),[ALox for C#](http://alexworx.github.io/ALox-Logging-Library/cs_ref/cstutorial.html) and [ALox for Java](http://alexworx.github.io/ALox-Logging-Library/java_ref/javatutorial.html), **Sample Projects** and pre-configured project files for **different IDEs** and **CMake**.
36+
37+
* **Formatted**, **colorful** and **configurable** log output** with support for ANSI compatible consoles and Windows OS consoles.
3638

3739
* Log lines **'clickable' in IDE** to jump to the corresponding source code line (depending on IDE).
3840

3941
* Automatic collection of **meta information** like time stamp, time-difference to previous log, executing thread or executing source scope information (platform/language dependent).
4042

43+
* Automatic removal, aka **'pruning'**, of *debug-log* statements from release code mostly without the need of pre-processor if/endif code cluttering. Optionally also automatic pruning of *release-log* statements. (In Java: implemented using [Proguard](http://proguard.sourceforge.net), with provision of ready to use configuration files.
44+
45+
- Minimal intrusiveness in respect to *cluttering* your code and what you need to make it really work.
46+
4147
* Use of external configuration (INI-files, command line parameters, environment variables, etc.) which allows developer specific local settings and greatly supports working in teams.
4248

4349
* **Hierarchical 'Log-Domains'**, (like for example "MYAPP/UI", "MYAPP/DATABASE" that allow the classification of different log statements into user defined topics. Verbosity is controlled per domain to allow the programmer to concentrate on the area of current interest.
@@ -48,15 +54,13 @@ This is **Version 1607**. In other versioning schemes, this would probably have
4854

4955
* Support for **CMake**, **Eclipse**, **Visual Studio**, **QT Creator**, **Mono Develop** in combination with **GNU/Linux**, **Windows**, **Windows Phone** and **Android**. (Windows Phone in current versions not tested any more). Porting to other platforms should be easy.
5056

51-
* Very **fast** to minimize run-time overhead of logging (We just broke our former record and did **one million log lines in a second**, including meta information. This was of-course the C++ version doing release logging on release executable).
52-
53-
* Automatic removal, aka **'pruning'**, of *debug-log* statements from release code mostly without the need of pre-processor if/endif code cluttering. Optionally also automatic pruning of *release-log* statements. (In Java: implemented using [Proguard](http://proguard.sourceforge.net), with provision of ready to use configuration files.
57+
* Very **fast** to minimize runtime overhead of logging (We just broke our former record and did **one million log lines in a second**, including meta information. This was of-course the C++ version doing release logging on release executable).
5458

5559
* Multiple **parallel log streams** with different *filters* and verbosity levels, e.g. for logging to the console and in parallel into a file.
5660

5761
* **Extensible** with own loggers, which enables dedicated "data drains" (e.g. databases or Internet services) and custom output formatting. ALox provides a simple programming interface and internal architecture that is easy to learn, not overloaded by 'factories' and 'factory factories' ;-)
5862

59-
* Logging of <b>arbitrary objects</b> which means the whole ALox architecture is designed for logging 'objects' instead of just message strings. Only the implementation decides whether an object is - and if yes, how - an object is converted into a human readable string.
63+
* Logging of <b>arbitrary objects</b> which means the whole ALox architecture is designed for logging 'objects' instead of just string messages. Only the logger instances which are attached at runtime, decide how logged data might be converted to human readable strings.
6064

6165
* Scope dependent **Log Data** to add debug variables that automatically get pruned like the debug-logging statments are.
6266

@@ -72,11 +76,36 @@ This is **Version 1607**. In other versioning schemes, this would probably have
7276
* Logging **Exceptions** (recursively with inner exceptions)
7377
* Logging **XML trees**
7478

75-
* C++ version accepts arbitrary **3rd party string types**. This goal was reached by underlying A-Worx utility library *ALib* (open source, MIT License) which greatly [solved that problem](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/namespaceaworx_1_1lib_1_1strings.html) using some *template meta programming* to relieve us from the (disastrous) string mix in the C++ world.
76-
On the same token, conversion of **user defined types** to logable (string) objects is supported. After implementing the conversion once, you can just throw your custom types into ALox log statements, even as a part of a concatenated log message.
79+
* C++ version:
80+
* Compiled and tested on **GNU/Linux**, **Windows OS** and Apple **macOS**.
81+
* Accepts **arbitrary objects** to be logged. This goal is reached by using underlying library [ALib Boxing](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/namespaceaworx_1_1lib_1_1boxing.html) which allows to pass 'anything' as a parameter to C++ functions and methods.
82+
* Accepts **3rd party string types**. This goal is reached by using underlying library [ALib Strings](http://alexworx.github.io/ALox-Logging-Library/cpp_ref/namespaceaworx_1_1lib_1_1strings.html).
7783

7884
* and finally: ALox is under **continuous development**. You're invited to contribute!
7985

86+
#Alternatives
87+
The following alternatives to **ALox** may be worth mentioning:
88+
89+
**For C++:**
90+
- [boost.Log](http://www.boost.org/doc/libs/1_55_0/libs/log/doc/html/index.html)
91+
- [Google glog](https://github.com/google/glog)
92+
- [Pantheios](http://www.pantheios.org/)
93+
- [log4cplus](https://sourceforge.net/p/log4cplus/wiki/Home/)
94+
- [log4cpp](http://log4cpp.sourceforge.net/)
95+
96+
**For C#:**
97+
- [Apache Log4net](https://logging.apache.org/log4net/)
98+
- [nlog](http://nlog-project.org/)
99+
- CSharp-Source.Net provides an [extensive list](http://csharp-source.net/open-source/logging) of further alternatives.
100+
101+
102+
**For Java:**
103+
- [built-in java.util.logging](https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html)
104+
- [Apache Log4j](https://logging.apache.org/log4)
105+
- Java-Source.Net provides an [extensive list](http://java-source.net/open-source/logging) of further alternatives.
106+
107+
108+
80109

81110

82111

0 commit comments

Comments
 (0)