79 lines
3.1 KiB
PHP
79 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* LiteSpeed Cache Log Viewer
|
|
*
|
|
* Renders the log viewer interface for LiteSpeed Cache, displaying debug, purge, and crawler logs with options to copy or clear logs.
|
|
*
|
|
* @package LiteSpeed
|
|
* @since 4.7
|
|
*/
|
|
|
|
namespace LiteSpeed;
|
|
|
|
defined( 'WPINC' ) || exit;
|
|
|
|
$logs = array(
|
|
array(
|
|
'name' => 'debug',
|
|
'label' => esc_html__( 'Debug Log', 'litespeed-cache' ),
|
|
'accesskey' => 'A',
|
|
),
|
|
array(
|
|
'name' => 'purge',
|
|
'label' => esc_html__( 'Purge Log', 'litespeed-cache' ),
|
|
'accesskey' => 'B',
|
|
),
|
|
array(
|
|
'name' => 'crawler',
|
|
'label' => esc_html__( 'Crawler Log', 'litespeed-cache' ),
|
|
'accesskey' => 'C',
|
|
),
|
|
);
|
|
?>
|
|
|
|
<h3 class="litespeed-title">
|
|
<?php esc_html_e( 'LiteSpeed Logs', 'litespeed-cache' ); ?>
|
|
<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#log-view-tab' ); ?>
|
|
</h3>
|
|
|
|
<div class="litespeed-log-subnav-wrapper">
|
|
<?php foreach ( $logs as $log ) : ?>
|
|
<a href="#<?php echo esc_attr( $log['name'] ); ?>_log" class="button button-secondary" data-litespeed-subtab="<?php echo esc_attr( $log['name'] ); ?>_log" litespeed-accesskey="<?php echo esc_attr( $log['accesskey'] ); ?>">
|
|
<?php echo esc_html( $log['label'] ); ?>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ) ); ?>" class="button button-primary" litespeed-accesskey="D">
|
|
<?php esc_html_e( 'Clear Logs', 'litespeed-cache' ); ?>
|
|
</a>
|
|
</div>
|
|
|
|
<?php
|
|
foreach ( $logs as $log ) :
|
|
$file = $this->cls( 'Debug2' )->path( $log['name'] );
|
|
$lines = File::count_lines( $file );
|
|
$max_lines = apply_filters( 'litespeed_debug_show_max_lines', 1000 );
|
|
$start = $lines > $max_lines ? $lines - $max_lines : 0;
|
|
$lines = File::read( $file, $start );
|
|
$lines = $lines ? trim( implode( "\n", $lines ) ) : '';
|
|
|
|
$log_body_id = 'litespeed-log-' . esc_attr( $log['name'] );
|
|
?>
|
|
<div class="litespeed-log-view-wrapper" data-litespeed-sublayout="<?php echo esc_attr( $log['name'] ); ?>_log">
|
|
<h3 class="litespeed-title">
|
|
<?php echo esc_html( $log['label'] ); ?>
|
|
<a href="#<?php echo esc_attr( $log['name'] ); ?>_log" class="button litespeed-info-button litespeed-wrap" onClick="litespeed_copy_to_clipboard('<?php echo esc_js( $log_body_id ); ?>', this)" aria-label="<?php esc_attr_e( 'Click to copy', 'litespeed-cache' ); ?>" data-balloon-pos="down">
|
|
<?php esc_html_e( 'Copy Log', 'litespeed-cache' ); ?>
|
|
</a>
|
|
<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_DOWNLOAD_LOG, false, null, [ 'log' => $log['name'] ] ) ); ?>" class="button litespeed-info-button litespeed-wrap" aria-label="<?php esc_attr_e( 'Click to download', 'litespeed-cache' ); ?>" data-balloon-pos="down">
|
|
<?php esc_html_e( 'Download', 'litespeed-cache' ); ?>
|
|
</a>
|
|
</h3>
|
|
<div class="litespeed-log-body" id="<?php echo esc_attr( $log_body_id ); ?>">
|
|
<?php echo nl2br( esc_html( $lines ) ); ?>
|
|
</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
|
|
<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ) ); ?>" class="button button-primary">
|
|
<?php esc_html_e( 'Clear Logs', 'litespeed-cache' ); ?>
|
|
</a>
|