log - Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Ρ Π½Π° PHP
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°ΠΉΠ»Ρ, ΠΈΡ
ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ
ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΊΠ° ΠΆΠΈΠ·Π½ΠΈ.
Π£Π΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΎΠ³ΠΎΠ² ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π΄ΠΈΡΠΊΠ°., (*1)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
log Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° Packagist (igancev/log)
ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Composer., (*2)
$ composer require igancev/log
ΠΈΠ»ΠΈ, (*3)
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ igancev/log Π² require section Π²Π°ΡΠ΅Π³ΠΎ composer.json file:, (*4)
{
"require": {
"igancev/log": "^1.0"
}
}
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΠΏΠΈΡΡ Π»ΠΎΠ³Π° Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ
(new Igancev\Log\Log('log text'))->setFileDir('/log/path/')->setLifeTime(5)->addLog();
ΠΠ°ΠΏΠΈΡΡ Π»ΠΎΠ³Π° Ρ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ:
- ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ ΡΠ°ΠΉΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² Π²ΠΈΠ΄Π° "/path/to/dir/" (ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ "/log/")
-
ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ "log")
-
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ "txt")
-
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π·Π°ΠΏΠΈΡΠΈ. Log::SORT_ASC - Π·Π°ΠΏΠΈΡΡ Π½ΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°, Log::SORT_DESC - Π·Π°ΠΏΠΈΡΡ Π½ΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Log::SORT_ASC)
-
Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π² Π΄Π½ΡΡ
(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ)
- ΡΠ΅ΠΊΡΡ Π»ΠΎΠ³Π°
use Igancev\Log\Log;
$log = new Log;
// ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ΅Ρ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ
$log
->setFileDir('/my/auto/creating/dir/')
->setFileName('myFileName')
->setFileExt('txt')
->setSort(Log::SORT_DESC)
->setLifeTime(10)
->addText("my log text\n");
// Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΊ Π»ΠΎΠ³Ρ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ
$log->addText("add more text");
// Π·Π°ΠΏΠΈΡΡ Π»ΠΎΠ³Π° Π² ΡΠ°ΠΉΠ»
$log->addLog();
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΉΠ» /my/auto/creating/dir/myFileName-dd.mm.yyyy-lifetime-10.txt, Π³Π΄Π΅ dd.mm.yyyy - ΡΠ΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ». Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π½Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°:, (*5)
14:25:19 my log text
add more text
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠ³ΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
, Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ, Π·Π°Π½ΠΈΠΌΠ°Ρ Π΄ΡΠ°Π³ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠ΅ΡΠΊΡ lifetime ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ $log->setLifeTime($daysCount), ΠΌΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π»Ρ ΡΠ΅Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠΈΡΡΠΈΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ (Ρ ΠΈΡΡΠ΅ΠΊΡΠΈΠΌ "ΡΡΠΎΠΊΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ" lifetime), ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ cron) ΠΌΠ΅ΡΠΎΠ΄:, (*6)
use Igancev\Log\LogGarbageCollector;
LogGarbageCollector::clearOld('/path/to/clear/dir', true);
- ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΠΏΡΡΡ ΠΏΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
- Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ - ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ true. ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false ΡΠ΄Π°Π»ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Ρ ΠΏΠΎΠΈΡΠΊ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
.