Skip to content

Commit c636083

Browse files
committed
Change namespace to \App\DebugLogger
1 parent 928df68 commit c636083

File tree

7 files changed

+176
-88
lines changed

7 files changed

+176
-88
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
.idea/
12

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2019-2020 andrey-tech
3+
Copyright (c) 2019-2021 andrey-tech
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 65 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
# Debug Logger PHP
22

3-
Простой логгер, cохраняющий отладочную информацию в файл.
3+
Простой логгер на PHP7+, сохраняющий отладочную информацию в файл вместе с данными об объеме используемой оперативной памяти и прошедшем времени.
4+
5+
[![Latest Stable Version](https://poser.pugx.org/andrey-tech/debug-logger-php/v)](https://packagist.org/packages/andrey-tech/debug-logger-php)
6+
[![Total Downloads](https://poser.pugx.org/andrey-tech/debug-logger-php/downloads)](https://packagist.org/packages/andrey-tech/debug-logger-php)
7+
[![License](https://poser.pugx.org/andrey-tech/debug-logger-php/license)](https://packagist.org/packages/andrey-tech/debug-logger-php)
8+
49

510
# Содержание
611

712
<!-- MarkdownTOC levels="1,2,3,4,5,6" autoanchor="true" autolink="true" -->
813

914
- [Требования](#%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
1015
- [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
11-
- [Класс `\App\DebugLogger`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-appdebuglogger)
16+
- [Класс `DebugLogger`](#%D0%9A%D0%BB%D0%B0%D1%81%D1%81-debuglogger)
1217
- [Методы класса](#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0)
1318
- [Дополнительные параметры](#%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B)
1419
- [Примеры](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B)
20+
- [Пример результатов логирования](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D0%BE%D0%B2-%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
21+
- [Формат логирования](#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
1522
- [Автор](#%D0%90%D0%B2%D1%82%D0%BE%D1%80)
1623
- [Лицензия](#%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F)
1724

@@ -20,105 +27,126 @@
2027
<a id="%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"></a>
2128
## Требования
2229

23-
- PHP >= 7.0.
30+
- PHP >= 7.0;
2431
- Произвольный автозагрузчик классов, реализующий стандарт [PSR-4](https://www.php-fig.org/psr/psr-4/).
2532

2633
<a id="%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0"></a>
2734
## Установка
2835

2936
Установка через composer:
3037
```
31-
$ composer require andrey-tech/debug-logger-php
38+
$ composer require andrey-tech/debug-logger-php:"^2.0"
3239
```
3340

3441
или добавить
3542

3643
```
37-
"andrey-tech/debug-logger-php"
44+
"andrey-tech/debug-logger-php": "^2.0"
3845
```
3946

4047
в секцию require файла composer.json.
4148

42-
<a id="%D0%9A%D0%BB%D0%B0%D1%81%D1%81-appdebuglogger"></a>
43-
## Класс `\App\DebugLogger`
49+
<a id="%D0%9A%D0%BB%D0%B0%D1%81%D1%81-debuglogger"></a>
50+
## Класс `DebugLogger`
4451

45-
Класс `\App\DebugLogger` обеспечивает логирование отладочной информации в файл.
46-
При возникновении ошибок выбрасывается исключение с объектом класса `\App\AppException`.
52+
Класс `\App\DebugLogger\DebugLogger` обеспечивает логирование отладочной информации в файл.
53+
При возникновении ошибок выбрасывается исключение класса `\App\DebugLogger\DebugLoggerException`.
4754

4855
<a id="%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0"></a>
4956
### Методы класса
5057

51-
- `static instance(string $logFileName = 'debug.log') :\App\DebugLogger`
52-
Возвращает единственный объект класса для заданного лог-файла `$logFileName`.
58+
- `static instance(string $logFileName = 'debug.log') :self`
59+
Возвращает единственный объект данного класса **для заданного лог-файла** `$logFileName`.
5360
+ `$logFileName` - имя лог-файла.
54-
- `save(mixed $info, $object = null) :void` Сохраняет подлежащую логированию информацию в файл.
55-
+ $info - строка, массив или объект для логирования;
56-
+ $object - ссылка на объект класса в котором выполняется логирование.
61+
- `save(mixed $info, object $object = null, string $header = null) :void` Сохраняет подлежащую логированию информацию в файл.
62+
+ `$info` - строка, массив или объект для логирования;
63+
+ `$object` - ссылка на объект класса в котором выполняется логирование;
64+
+ `$header` - строка заголовка для сохраняемой в лог файл информации.
5765

5866
<a id="%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B"></a>
5967
### Дополнительные параметры
6068

61-
Дополнительные параметры устанавливаются через публичные свойства объекта класса `\App\DebugLogger`:
69+
Дополнительные параметры устанавливаются через публичные свойства класса `\App\DebugLogger\DebugLogger`:
70+
71+
Нестатическое свойство | По умолчанию | Описание
72+
----------------------- | ------------- | --------
73+
`$isActive` | false | Включает или выключает логирование для конкретного файла, задаваемого параметром `$logFileName` метода `instance()`
6274

63-
Свойство | По умолчанию | Описание
75+
Статическое свойство | По умолчанию | Описание
6476
----------------------- | ------------- | --------
65-
`$isActive` | false | Включает или выключает логирование
6677
`$logFileDir` | `temp/` | Устанавливает каталог, в котором сохраняются лог-файлы
78+
`mkdirMode` | 0755 | Устанавливает режим доступа для создаваемых каталогов для хранения лог файлов в виде восьмеричного числа
79+
`$uniqIdLength` | 7 | Длина уникального буквенно-цифрового [a-z0-9]+ идентификатора объекта класса `DebugLogger` для сохранения в лог файле, позволяющего находить записи, созданные одним и тем же процессом
80+
6781

6882
<a id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B"></a>
6983
### Примеры
7084

7185
```php
72-
use \App\DebugLogger;
86+
use App\DebugLogger\DebugLogger;
87+
use App\DebugLogger\DebugLoggerException;
7388

7489
try {
75-
$logFileName = 'debug_extensions.log'
76-
$logger = DebugLogger::instance($logFileName);
77-
7890
// Устанавливаем каталог для сохранения лог-файлов
79-
$logger->logFileDir = 'logs/';
91+
DebugLogger::$logFileDir = 'logs/';
92+
93+
$logFileName = 'debug_extensions.log';
94+
$logger = DebugLogger::instance($logFileName);
8095

8196
// Включаем логирование
8297
$logger->isActive = true;
8398

84-
// Сохраняем информацию о всех скомпилированных и загруженных модулях
85-
$logger->save(get_loaded_extensions());
99+
// Сохраняем информацию о всех скомпилированных и загруженных модулях PHP
100+
$logger->save(get_loaded_extensions(), null, 'PHP modules');
86101

87-
// Сохраняем версию движка Zend
88-
$logger->save(zend_version());
102+
// Сохраняем версию движка Zend PHP
103+
$logger->save(zend_version(), null, 'Zend engine');
89104

90-
} catch (\App\AppException $e) {
105+
} catch (DebugLoggerException $e) {
91106
printf('Ошибка (%d): %s' . PHP_EOL, $e->getCode(), $e->getMessage());
92107
}
93108
```
94109

95-
Пример результатов логирования:
110+
<a id="%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D0%BE%D0%B2-%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"></a>
111+
### Пример результатов логирования
96112

97113
```
98-
*** ytoqjz5 [2020-06-14 12:57:18,420258 +00:00 Δ- s, 0.69/2.00 MiB] ********************
114+
*** ytoqjz5 [2020-06-14 12:57:18.420258 +00:00 Δ- s, 0.69/2.00 MiB] ********************
115+
PHP modules
99116
[
100117
"Core",
101118
"bcmath",
102119
"calendar",
103120
"ctype"
104121
]
105122
106-
*** ytoqjz5 [2020-06-14 12:57:18,421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************
123+
*** ytoqjz5 [2020-06-14 12:57:18.421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************
124+
Zend engine
107125
3.2.0
108126
```
109127

110-
Формат заголовков логирования:
128+
<a id="%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F"></a>
129+
#### Формат логирования
111130

112-
- `*** ytoqjz5 [2020-06-14 12:57:18,421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************`
113-
+ `ytoqjz5` - уникальный идентификатор объекта класса '\App\DebugLogger';
114-
+ `2020-06-14 12:57:18,421359 +00:00` - время сохранения информации;
115-
+ `Δ0.001101 s` - время, прошедшее с момента предыдущего сохранения информации;
116-
+ `0.69/2.00 MiB` - максимальный объем памяти, который был выделен PHP-скрипту / реальный объем памяти, выделенный системой.
131+
```
132+
*** ytoqjz5 [2020-06-14 12:57:18,421359 +00:00 Δ0.001101 s, 0.69/2.00 MiB] ********************
133+
Zend engine
134+
3.2.0
135+
```
117136

137+
- `ytoqjz5` - уникальный буквенно-цифровой [a-z0-9]+ идентификатор объекта класса `DebugLogger`, позволяющий находить в лог файле записи, созданные одним и тем же процессом;
138+
- `2020-06-14 12:57:18.421359 +00:00` - дата и время сохранения информации с точностью до микросекунд;
139+
- `Δ0.001101 s` - время, прошедшее с момента предыдущего сохранения информации в секундах и микросекундах;
140+
- `0.69/2.00 MiB` - данные об используемой оперативной памяти в единицах количества информации с [двоичными приставками](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8):
141+
+ `0.69` - максимальный объем памяти, который был выделен PHP-скрипту системой;
142+
+ `2.00` - реальный объем памяти, выделенный PHP-скрипту системой;
143+
- 'Zend engine' - заголовок для сохраняемой информации, задаваемый параметром `$header` метода `save()`;
144+
- '3.2.0' - сохраняемая информация, задаваемая параметром `$info` метода `save()`.
145+
118146
<a id="%D0%90%D0%B2%D1%82%D0%BE%D1%80"></a>
119147
## Автор
120148

121-
© 2019-2020 andrey-tech
149+
© 2019-2021 andrey-tech
122150

123151
<a id="%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F"></a>
124152
## Лицензия

composer.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "andrey-tech/debug-logger-php",
3-
"description": "Простой логгер, cохраняющий отладочную информацию в файл",
4-
"keywords": [ "logger", "debug", "debugging-tool" ],
3+
"description": "Простой логгер на PHP7+, сохраняющий отладочную информацию в файл вместе с данными об объеме используемой оперативной памяти и прошедшем времени",
4+
"keywords": [ "logger", "debug", "debugging-tool", "memory" ],
55
"homepage": "https://github.com/andrey-tech/debug-logger-php",
66
"minimum-stability": "stable",
77
"license": "MIT",
@@ -13,11 +13,12 @@
1313
}
1414
],
1515
"require": {
16-
"php": ">=7.0"
16+
"php": ">=7.0",
17+
"ext-json": "*"
1718
},
1819
"autoload": {
1920
"psr-4": {
20-
"App\\": "src/App"
21+
"App\\DebugLogger\\": "src/App/DebugLogger"
2122
}
2223
}
2324
}

0 commit comments

Comments
 (0)