Skip to content

Commit ce96bf4

Browse files
committed
Add logger name setting feature
1 parent 83ea0e4 commit ce96bf4

File tree

4 files changed

+36
-14
lines changed

4 files changed

+36
-14
lines changed

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,27 @@ The Cherry-project logger
88
------------
99

1010
## Including
11-
Install from composer `composer require cherry-project/logger`
11+
**Install from composer** `composer require cherry-project/logger`
1212

13-
Include Autoloader in your main file (Ex.: index.php)
13+
**Include Autoloader in your main file** (Ex.: index.php)
1414
```php
1515
require_once __DIR__ . '/vendor/autoload.php';
1616
```
17-
Import class
17+
**Import class**
1818
```php
1919
use Cherry\Logger;
2020
```
21-
Set logs directory
21+
**Set logs directory**
2222
```php
2323
define('LOGS_DIR', __DIR__ . '/var/log');
2424
```
25-
Crete class new object
25+
**Crete class new object**
26+
27+
Logger class takes two arguments:
28+
- Log Name, the logs filename(**{LogName}.log**). (Default **'app'**)
29+
- Logs Directory. (Default **'/var/log'**)
2630
```php
27-
$logger = new Logger(LOGS_DIR);
31+
$logger = new Logger('app-logs', LOGS_DIR);
2832
```
2933

3034
## Logger methods

composer.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Logger.php

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,27 @@
1010
*/
1111
class Logger
1212
{
13+
/**
14+
* @var string $logsName Log File (Use in file name)
15+
*/
16+
private $logsName;
17+
1318
/**
1419
* @var string $logsDir Logs directory
1520
*/
16-
private $logsDir = __DIR__ . '/../var/log';
21+
private $logsDir;
22+
1723
/**
1824
* @var string $logType Log type
1925
*/
2026
private $logType;
21-
public function __construct($logsDir = null)
27+
28+
public function __construct($logsName = 'app', $logsDir = __DIR__ . '/../var/log')
2229
{
23-
if ($logsDir != null)
24-
$this->logsDir = $logsDir;
30+
$this->logsName = $logsName;
31+
$this->logsDir = $logsDir;
2532
}
33+
2634
/**
2735
* Information Log
2836
*
@@ -34,6 +42,7 @@ public function info($message)
3442
$this->logType = 'INFO';
3543
$this->writeLog($message);
3644
}
45+
3746
/**
3847
* Warning Log
3948
*
@@ -45,6 +54,7 @@ public function warning($message)
4554
$this->logType = 'WARNING';
4655
$this->writeLog($message);
4756
}
57+
4858
/**
4959
* Error Log
5060
*
@@ -56,6 +66,7 @@ public function error($message)
5666
$this->logType = 'ERROR';
5767
$this->writeLog($message);
5868
}
69+
5970
/**
6071
* Write log in file
6172
*
@@ -66,20 +77,27 @@ private function writeLog($message)
6677
{
6778
//Get log type
6879
$logType = $this->logType;
80+
6981
//Set logs directory and file names
82+
$logName = $this->logsName;
7083
$logsDir = $this->logsDir;
71-
$logsFile = $logsDir . '/app.log';
84+
$logsFile = $logsDir . '/' . $logName . '.log';
85+
7286
//Make logs directory if don't exists
7387
if (!is_dir($logsDir))
7488
mkdir($logsDir, 0777, true);
89+
7590
//Get Backtrace
7691
$trace = debug_backtrace()[1];
7792
$traceFile = $trace['file'];
7893
$traceLine = $trace['line'];
94+
7995
//Get current date and time
8096
$dateTime = date("Y-m-d H:i:s");
97+
8198
//Generate message text
8299
$logTxt = "{$dateTime} {$logType}: {$message} In {$traceFile} On line {$traceLine}.\n";
100+
83101
//Write message in $logsFile
84102
$fs = fopen($logsFile, 'a') or die("Unable to open log file!");
85103
fwrite($fs, $logTxt);

tests/test.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use Cherry\Logger;
77

88
define('LOGS_DIR', __DIR__ . '/../var/log');
9-
$logger = new Logger(LOGS_DIR);
9+
$logger = new Logger('custom-logs', LOGS_DIR);
1010

1111
$logger->info('Info Message');
1212
$logger->warning('Warning Message');

0 commit comments

Comments
 (0)