Prevent file logging in web environments.

This commit is contained in:
netkas 2025-01-10 04:24:45 -05:00
parent 0507fbb9d1
commit 9958bdd205
3 changed files with 16 additions and 3 deletions

View file

@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.0.6] - 2025-01-10
This update introduces a minor change
### Changed
- File logging is disabled for web environments due to instability in file locking, until a better solution is found.
## [2.0.5] - 2025-01-09 ## [2.0.5] - 2025-01-09
This update introduces a minor bug fix This update introduces a minor bug fix

View file

@ -24,7 +24,6 @@ class ConsoleLogging implements LogHandlerInterface
*/ */
public static function handle(Application $application, Event $event): void public static function handle(Application $application, Event $event): void
{ {
// Check if the application is running in a CLI environment, if not, return
if(!Utilities::runningInCli()) if(!Utilities::runningInCli())
{ {
return; return;

View file

@ -21,6 +21,12 @@ class FileLogging implements LogHandlerInterface
*/ */
public static function handle(Application $application, Event $event): void public static function handle(Application $application, Event $event): void
{ {
// If we're running in a Web environment, return
if(!Utilities::runningInCli())
{
return;
}
if(!Validate::checkLevelType($event->getLevel(), $application->getFileLoggingLevel())) if(!Validate::checkLevelType($event->getLevel(), $application->getFileLoggingLevel()))
{ {
return; return;
@ -88,9 +94,9 @@ class FileLogging implements LogHandlerInterface
$logging_file = $logging_directory . DIRECTORY_SEPARATOR . Utilities::sanitizeFileName($application->getApplicationName()) . '-' . date('Y-m-d') . '.log'; $logging_file = $logging_directory . DIRECTORY_SEPARATOR . Utilities::sanitizeFileName($application->getApplicationName()) . '-' . date('Y-m-d') . '.log';
if(!file_exists($logging_file)) if(!file_exists($logging_file) && !@touch($logging_file))
{ {
touch($logging_file); throw new RuntimeException(sprintf("Cannot write to %s due to insufficient permissions", $logging_file));
} }
return $logging_file; return $logging_file;