我是Laravel和PHP的新手,我试图清除我的错误日志。我当前使用的错误日志是/ app / storage / logs中的Laravel的laravel.log文件。
有没有简单的方法来清除laravel.log文件?删除它是否安全,并在需要时重建?
我使用的是最新版本的Ubuntu。谢谢!
答案 0 :(得分:51)
回复一个空字符串就可以了,就像这样:
echo "" > storage/logs/laravel.log
most efficient将truncate
改为零大小:
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/目录下的所有旧日志数据。
谢谢。