
Gestión de la salida de tareas programadas en Laravel
- Publicado el 28 enero, 2025
- Palabras: 40
¿Necesitas realizar un seguimiento de los resultados de tus tareas programadas? El programador de Laravel ofrece métodos elegantes para capturar y almacenar los resultados de los comandos para su posterior revisión.

#Uso básico
Guardar la salida del comando en un archivo:
use IlluminateSupportFacadesSchedule;
// Save output to file
Schedule::command('emails:send')
->daily()
->sendOutputTo($filePath);
// Append output to existing file
Schedule::command('emails:send')
->daily()
->appendOutputTo($filePath);
#Ejemplo práctico
A continuación se muestra cómo puede implementar un registro completo de salida de tareas:
class TaskScheduler
{
protected $outputPath = 'storage/logs/scheduled-tasks';
public function registerTasks()
{
// Database backup with output logging
Schedule::command('backup:run')
->daily()
->at('01:00')
->appendOutputTo($this->getLogPath('backup'))
->before(function () {
Log::info('Starting database backup...');
})
->after(function () {
Log::info('Backup process completed');
});
// Report generation with separate logs
Schedule::command('reports:generate')
->weekly()
->mondays()
->at('07:00')
->sendOutputTo($this->getLogPath('reports'));
// Clean old logs weekly
Schedule::call(function () {
$this->cleanOldLogs();
})->weekly();
}
protected function getLogPath($task)
{
$date = now()->format('Y-m-d');
return storage_path(
"logs/scheduled-tasks/{$task}-{$date}.log"
);
}
protected function cleanOldLogs()
{
$files = File::files($this->outputPath);
foreach ($files as $file) {
$age = now()->diffInDays(File::lastModified($file));
if ($age > 30) {
File::delete($file);
}
}
}
}
Estos métodos de manejo de salida facilitan el seguimiento y la depuración de las tareas programadas.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión