https://github.com/cdoco/easylog
Logging system of php based on Easylogging++
https://github.com/cdoco/easylog
easyloggingpp log php-extension php-log php7
Last synced: 12 months ago
JSON representation
Logging system of php based on Easylogging++
- Host: GitHub
- URL: https://github.com/cdoco/easylog
- Owner: cdoco
- Created: 2017-07-04T06:21:24.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-15T02:50:13.000Z (almost 8 years ago)
- Last Synced: 2025-03-26T22:04:40.789Z (about 1 year ago)
- Topics: easyloggingpp, log, php-extension, php-log, php7
- Language: C++
- Homepage:
- Size: 95.7 KB
- Stars: 12
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Easylog
Logging system based on [Easylogging++](https://github.com/muflihun/easyloggingpp)
## Installation
```shell
phpize && ./configure && make && make install
```
## Basic Usage
### php.ini
```ini
extension=easylog.so
[easylog]
easylog.config_file = "/data/easylog.conf"
// Level: global trace debug fatal error warning verbose info unknown
easylog.log_level = "info"
```
### Quick start
```php
setFormat(Easylog::INFO, "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level %ip | %msg");
$easylog->info("info");
$easylog->warning("warning");
$easylog->error("error");
$easylog->debug("debug");
$easylog->trace("trace");
$easylog->fatal("fatal");
$zy = new Easylog("zy");
//Determines format of logging corresponding level and logger.
$zy->setFormat(Easylog::GLOBAL, "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg");
//Whether or not to write corresponding log to log file
$zy->setToFile(Easylog::GLOBAL, "true");
//Determines log file (full path) to write logs to for correponding level and logger
$zy->setFileName(Easylog::GLOBAL, "/data/logs/php/zy.log");
//If file size of corresponding log file (for corresponding level) is >= specified size, log file will be truncated and re-initiated.
$zy->setMaxLogFileSize(Easylog::GLOBAL, "2097152");
//Whether or not to write corresponding level and logger log to standard output
$zy->setToStandardOutput(Easylog::GLOBAL, "true");
//This does not depend on logger or level. Performance tracking always uses 'performance' logger
$zy->setPerformanceTracking(Easylog::GLOBAL, "false");
//Specifies number of log entries to hold until we flush pending log data
$zy->setLogFlushThreshold(Easylog::GLOBAL, "1");
//Alias of SubsecondPrecision (for backward compatibility)
$zy->setMillisecondsWidth(Easylog::GLOBAL, "3");
$zy->info("info");
$zy->warning("warning");
```
### Configuring file
```conf
-- default // logger id
* GLOBAL:
ENABLED = true
TO_FILE = true
TO_STANDARD_OUTPUT = true
FORMAT = "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg"
FILENAME = "/data/logs/php/log_%datetime{%Y%M%d}.log"
MILLISECONDS_WIDTH = 3
PERFORMANCE_TRACKING = false
MAX_LOG_FILE_SIZE = 1048576
LOG_FLUSH_THRESHOLD = 0
* TRACE:
FILENAME = "/data/logs/php/trace_%datetime{%Y%M%d}.log"
* DEBUG:
FILENAME = "/data/logs/php/debug_%datetime{%Y%M%d}.log"
* FATAL:
ENABLED = false
* ERROR:
FILENAME = "/data/logs/php/error_%datetime{%Y%M%d}.log"
* WARNING:
FILENAME = "/data/logs/php/warning_%datetime{%Y%M%d}.log"
* INFO:
FILENAME = "/data/logs/php/info_%datetime{%Y%M%d}.log"
* VERBOSE:
ENABLED = false
-- easylog // logger id
* GLOBAL:
ENABLED = true
TO_FILE = true
TO_STANDARD_OUTPUT = true
FORMAT = "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg"
FILENAME = "/data/logs/php/easylog/log_%datetime{%Y%M%d}.log"
MILLISECONDS_WIDTH = 3
PERFORMANCE_TRACKING = false
MAX_LOG_FILE_SIZE = 1048576
LOG_FLUSH_THRESHOLD = 0
* INFO:
FILENAME = "/data/logs/php/easylog/info_%datetime{%Y%M%d}.log"
* ERROR:
FILENAME = "/data/logs/php/easylog/error_%datetime{%Y%M%d}.log"
```
#### Configuration Options
| Configuration Name | Type | Description |
|-----------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Enabled` | bool | Determines whether or not corresponding level for logger is enabled. You may disable all logs by using |
| `To_File` | bool | Whether or not to write corresponding log to log file |
| `To_Standard_Output` | bool | Whether or not to write logs to standard output e.g, terminal or command prompt |
| `Format` | char* | Determines format/pattern of logging for corresponding level and logger. |
| `Filename` | char* | Determines log file (full path) to write logs to for corresponding level and logger |
| `Subsecond_Precision` | uint | Specifies subsecond precision (previously called 'milliseconds width'). Width can be within range (1-6) |
| `Performance_Tracking` | bool | Determines whether or not performance tracking is enabled. This does not depend on logger or level. Performance tracking always uses 'performance' logger unless specified|
| `Max_Log_File_Size` | size_t | If log file size of corresponding level is >= specified size, log file will be truncated. |
| `Log_Flush_Threshold` | size_t | Specifies number of log entries to hold until we flush pending log data. |
#### Date/Time Format Specifiers
You can customize date/time format using following specifiers
| Specifier | Replaced By |
|-----------------|------------------------------------------------------------------------------------------------------------------|
| `%d` | Day of month (zero-padded) |
| `%a` | Day of the week - short (Mon, Tue, Wed, Thu, Fri, Sat, Sun) |
| `%A` | Day of the week - long (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) |
| `%M` | Month (zero-padded) |
| `%b` | Month - short (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) |
| `%B` | Month - Long (January, February, March, April, May, June, July, August, September, October, November, December) |
| `%y` | Year - Two digit (13, 14 etc) |
| `%Y` | Year - Four digit (2013, 2014 etc) |
| `%h` | Hour (12-hour format) |
| `%H` | Hour (24-hour format) |
| `%m` | Minute (zero-padded) |
| `%s` | Second (zero-padded) |
| `%g` | Subsecond part (precision is configured by ConfigurationType::SubsecondPrecision) |
| `%F` | AM/PM designation |
| `%` | Escape character |