Skip to content

Commit

Permalink
Use error_log instead of upload folder
Browse files Browse the repository at this point in the history
  • Loading branch information
sinukaarel committed Jan 27, 2025
1 parent f107a7c commit d092f55
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 69 deletions.
3 changes: 0 additions & 3 deletions includes/smaily-lifecycle.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ public function activate() {
update_option( 'smaily_flush_rewrite_rules', true );
}

Smaily_Logger::create_log_folder();
$this->run_migrations();
$this->logger->info( 'Plugin activated' );
}
Expand Down Expand Up @@ -139,8 +138,6 @@ public static function uninstall() {
// Delete Smaily plugin abandoned cart table.
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}smaily_abandoned_carts" );

Smaily_Logger::delete_log_folder();

delete_option( 'smaily_form_options' );
delete_option( 'smaily_api_credentials' );
delete_option( 'smaily_woocommerce_settings' );
Expand Down
80 changes: 14 additions & 66 deletions includes/smaily-logger.class.php
Original file line number Diff line number Diff line change
@@ -1,32 +1,14 @@
<?php
/**
* WordPress Filesystem API does not provide a good functionality to append content to files. We use file_put_contents to append to the debug log.
*
* phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_file_put_contents
*/


/**
* Logger class for smaily plugin logging
* Logger class for Smaily plugin logging.
*/
class Smaily_Logger {

const LEVEL_INFO = 'info';
const LEVEL_WARNING = 'warning';
const LEVEL_ERROR = 'error';

/**
* Folder where logs are stored.
*
* @var string
*/
const FOLDER_NAME = 'smaily_uploads';

/**
* Filename where logs are stored.
*/
const FILE_NAME = 'log.txt';

/**
* The service using the logger.
*
Expand All @@ -45,7 +27,7 @@ public function __construct( $service ) {
/**
* Log an info message.
*
* @param string $message
* @param string|array|object $message
* @return void
*/
public function info( $message ) {
Expand All @@ -55,7 +37,7 @@ public function info( $message ) {
/**
* Log a warning message.
*
* @param mixed $message
* @param string|array|object $message
* @return void
*/
public function warning( $message ) {
Expand All @@ -65,65 +47,31 @@ public function warning( $message ) {
/**
* Log an error message.
*
* @param mixed $message
* @param string|array|object $message
* @return void
*/
public function error( $message ) {
self::log( $message, self::LEVEL_ERROR, $this->service );
}

/**
* Create folders required for storing log messages.
*
*/
public static function create_log_folder() {
require_once ABSPATH . 'wp-admin/includes/file.php';
WP_Filesystem();

global $wp_filesystem;

$upload_dir = wp_upload_dir();
$smaily_upload_dir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . self::FOLDER_NAME;

wp_mkdir_p( $smaily_upload_dir );

$htacces_path = $smaily_upload_dir . DIRECTORY_SEPARATOR . '.htaccess';
if ( ! $wp_filesystem->exists( $htacces_path ) ) {
$wp_filesystem->put_contents( $htacces_path, 'deny from all' );
}
}

/**
* Delete log folder.
*
* @return void
*/
public static function delete_log_folder() {
require_once ABSPATH . 'wp-admin/includes/file.php';
WP_Filesystem();

global $wp_filesystem;

$upload_dir = wp_upload_dir();
$smaily_upload_dir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . self::FOLDER_NAME;

$wp_filesystem->rmdir( $smaily_upload_dir, true );
}

/**
* Log a message.
*
* @param string $message The message to log.
* @param string|array|object $message The message to log.
* @param string $level The log level (e.g., 'info', 'warning', 'error').
* @param string $service The service that logged the message.
*/
private static function log( $message, $level, $service ) {
$message = sprintf( '[%s] [%s] : %s : %s', current_time( 'mysql' ), $service, strtoupper( $level ), $message );
if ( empty( $message ) || empty( $service ) || empty( $service ) ) {
return;
}

if ( is_array( $message ) || is_object( $message ) ) {
$message = print_r( $message, true );
}

$upload_dir = wp_upload_dir();
$smaily_upload_dir = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . self::FOLDER_NAME;
$file = $smaily_upload_dir . DIRECTORY_SEPARATOR . self::FILE_NAME;
$message = sprintf( 'PHP %s: Smaily-%s: %s', strtoupper( $level ), $service, $message );

file_put_contents( $file, $message . PHP_EOL, FILE_APPEND );
error_log( $message );
}
}

0 comments on commit d092f55

Please sign in to comment.