在PHP Laravel中,如何清除laravel.log?

时间:2015-01-24 16:18:40

标签: php laravel-4

我是Laravel和PHP的新手,我试图清除我的错误日志。我当前使用的错误日志是/ app / storage / logs中的Laravel的laravel.log文件。

有没有简单的方法来清除laravel.log文件?删除它是否安全,并在需要时重建?

我使用的是最新版本的Ubuntu。谢谢!

12 个答案:

答案 0 :(得分:51)

回复一个空字符串就可以了,就像这样:

echo "" > storage/logs/laravel.log

most efficienttruncate改为零大小:

truncate -s 0 /app/storage/logs/laravel.log

答案 1 :(得分:13)

这是一个可重用的artisan命令,可以节省您的时间和精力:)

Artisan::command('logs:clear', function() {

    // Option 1: Empty the whole logs folder (even .gitignore)
    exec('rm ' . storage_path('logs/*'));

    // Option 2: Delete laravel logs only (this will exclude telescope* etc.)
    exec('rm ' . storage_path('logs/laravel*'));

    $this->comment('Logs have been cleared!');

})->describe('Clear log files');

将其放在routes/console.php中,然后运行php artisan logs:clear

答案 2 :(得分:7)

对我来说,最简单的方法是使用vim。

$ vim laravel.log

Then type ggdG

Then :wq save and quit.

注意: gg-将光标移到第一行

d-删除

G-到文件末尾

答案 3 :(得分:4)

只需在要清除日志的位置添加此行。 file_put_contents(storage_path('logs/laravel.log'),'');

答案 4 :(得分:2)

这对我有用:

echo "" > storage/logs/laravel.log

答案 5 :(得分:2)

您还可以创建自定义工匠命令。

首先,运行命令php artisan make:command Log/ClearLogFile以创建自定义命令文件。

然后打开Console/Commands/Log/ClearLogFile.php上的文件(取决于您的Laravel版本,当前我使用的是5.5版本)

在那之后,您需要定义自定义命令代码,看看

// Define command name
protected $signature = 'log:clear';

// Add description to your command
protected $description = 'Clear Laravel log';

// Create your own custom command
public function handle(){
    exec('echo "" > ' . storage_path('logs/laravel.log'));
    $this->info('Logs have been cleared');
}

然后,您只需要像其他php artisan命令一样运行,

php artisan log:clear

感谢@emotality answer

答案 6 :(得分:0)

对于Laravel 5,它将是

truncate -s 0 storage/logs/laravel.log

答案 7 :(得分:0)

你也可以这样做:: > storage/logs/laravel.log

答案 8 :(得分:0)

从您的Laravel目录:

rm storage/logs/laravel-*.log

答案 9 :(得分:0)

在运行SQL查询侦听器时,通常在控制器方法中粘贴以下行:

exec("truncate -s 0 " . storage_path('/logs/laravel.log'));

如果您使用其他monolog频道设置,则可能需要调整日志文件的名称。

答案 10 :(得分:0)

我发现此解决方案适用于Windows

Artisan::command('logs:clear', function() {
   array_map('unlink', array_filter((array) glob(storage_path('logs/*.log'))));
   $this->comment('Logs have been cleared!');
})->describe('Clear log files');

运行php artisan logs:clear

答案 11 :(得分:0)

使用 Laravel More Command 包使用 php artisan log:clear 命令清除日志非常简单。

首先安装 Laravel More 命令

<块引用>

composer require theanik/laravel-more-command --dev

然后运行

<块引用>

php artisan log:clear

以上操作会删除/storage/logs/目录下的所有旧日志数据。

谢谢。