initial commit
This commit is contained in:
41
README.md
Normal file
41
README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Logutil
|
||||
Logutil is a logging utility for PHP.
|
||||
|
||||
## Getting Started
|
||||
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
|
||||
|
||||
### Prerequisites
|
||||
You need to have PHP installed on your machine. Also, you need to install the dependencies of the project using Composer.
|
||||
|
||||
## Installation
|
||||
You can install LogUtil via Composer. Run the following command in your project directory:
|
||||
|
||||
```sh
|
||||
composer require hpz937/logutil
|
||||
```
|
||||
|
||||
### Usage
|
||||
You can use the Log class from the Hpz937\Logutil namespace to log messages. Here's an example:
|
||||
|
||||
```php
|
||||
<?php
|
||||
use Hpz937\Logutil\Log;
|
||||
|
||||
Log::info('This is an informational message');
|
||||
Log::error('This is an error message');
|
||||
?>
|
||||
```
|
||||
|
||||
You can also set the log file path and the execution environment (CLI or not) using the setLogFile and setRunFromCli methods respectively.
|
||||
|
||||
### Running the tests
|
||||
Explain how to run the automated tests for this system.
|
||||
|
||||
### Deployment
|
||||
Add additional notes about how to deploy this on a live system.
|
||||
|
||||
### Built With
|
||||
- adhocore/cli - Command line interface library for PHP
|
||||
|
||||
### License
|
||||
This project is licensed under the MIT License - see the LICENSE file for details
|
||||
20
composer.json
Normal file
20
composer.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "hpz937/logutil",
|
||||
"description": "logging utility for php",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Hpz937\\Logutil\\": "src/"
|
||||
}
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brad Cimbura",
|
||||
"email": "hpz937+code@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"adhocore/cli": "^1.6"
|
||||
}
|
||||
}
|
||||
89
composer.lock
generated
Normal file
89
composer.lock
generated
Normal file
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "c5bb6d2fc4a2ade259b305bb1dd9509c",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/cli",
|
||||
"version": "v1.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/adhocore/php-cli.git",
|
||||
"reference": "34191315b0da20b9b4ecad783d91db992fa209a4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/adhocore/php-cli/zipball/34191315b0da20b9b4ecad783d91db992fa209a4",
|
||||
"reference": "34191315b0da20b9b4ecad783d91db992fa209a4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ahc\\Cli\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jitendra Adhikari",
|
||||
"email": "jiten.adhikary@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Command line interface library for PHP",
|
||||
"keywords": [
|
||||
"argument-parser",
|
||||
"argv-parser",
|
||||
"cli",
|
||||
"cli-action",
|
||||
"cli-app",
|
||||
"cli-color",
|
||||
"cli-option",
|
||||
"cli-writer",
|
||||
"command",
|
||||
"console",
|
||||
"console-app",
|
||||
"php-cli",
|
||||
"php8",
|
||||
"stream-input",
|
||||
"stream-output"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/adhocore/php-cli/issues",
|
||||
"source": "https://github.com/adhocore/php-cli/tree/v1.6.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://paypal.me/ji10",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/adhocore",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-22T22:37:23+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
82
src/Log.php
Normal file
82
src/Log.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace Hpz937\Logutil;
|
||||
|
||||
use Ahc\Cli\Output\Color;
|
||||
|
||||
class Log {
|
||||
private static $logFile = 'app.log';
|
||||
|
||||
/**
|
||||
* Sets the file path for the log file.
|
||||
*
|
||||
* @param string $logFilePath Path to the log file.
|
||||
*/
|
||||
public static function setLogFile($logFilePath) {
|
||||
self::$logFile = $logFilePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an informational message.
|
||||
*
|
||||
* @param string $message The message to be logged.
|
||||
*/
|
||||
public static function info($message) {
|
||||
self::writeLog("INFO", $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an error message.
|
||||
*
|
||||
* @param string $message The error message to be logged.
|
||||
*/
|
||||
public static function error($message) {
|
||||
self::writeLog("ERROR", $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a log entry to either the console or a log file, depending on the execution environment.
|
||||
*
|
||||
* @param string $level The log level (e.g., 'INFO', 'ERROR').
|
||||
* @param string $message The log message.
|
||||
*/
|
||||
private static function writeLog($level, $message) {
|
||||
$formattedMessage = "[" . date('Y-m-d H:i:s') . "] $level: $message\n";
|
||||
|
||||
if (self::isCli()) {
|
||||
self::outputToConsole($level, $formattedMessage);
|
||||
} else {
|
||||
file_put_contents(self::$logFile, $formattedMessage, FILE_APPEND);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the current execution environment is CLI (Command Line Interface).
|
||||
*
|
||||
* @return bool True if the script is running in a CLI environment, false otherwise.
|
||||
*/
|
||||
private static function isCli() {
|
||||
return isset($_ENV['RUN_FROM_CLI']) && $_ENV['RUN_FROM_CLI'] === true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the RUN_FROM_CLI environment variable.
|
||||
*
|
||||
* @param bool $value The value to set.
|
||||
*/
|
||||
public static function setRunFromCli($value) {
|
||||
$_ENV['RUN_FROM_CLI'] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a formatted message to the console.
|
||||
*
|
||||
* @param string $level The log level (e.g., 'INFO', 'ERROR').
|
||||
* @param string $message The message to be output.
|
||||
*/
|
||||
private static function outputToConsole($level, $message) {
|
||||
$color = new Color();
|
||||
$outputMessage = $level === 'ERROR' ? $color->red($message) : $color->green($message);
|
||||
echo $outputMessage;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user