>  기사  >  백엔드 개발  >  Laravel은 기본 로그 파일 이름과 위치를 변경합니다.

Laravel은 기본 로그 파일 이름과 위치를 변경합니다.

不言
不言원래의
2018-07-05 14:42:531961검색

이 글은 주로 Laravel에서 기본 로그 파일 이름과 위치를 변경하는 방법을 소개합니다. 이제 특정 참조 값을 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

기본 로그 위치를 수정하세요

언제나 가능합니다. 일반적인 개발에 사용합니다. Laravel의 로그 파일을 기본 위치에 배치하는 것은 아무런 영향을 미치지 않습니다. 그러나 프로젝트가 온라인 상태일 때 완전히 배포되고 각 배포가 git의 최신 코드라면 로그는 매번 지워질 것입니다. 다행히도 laravel은 이를 수정할 수 있는 방법을 제공합니다.

여기서 /var/log/nginx/app/phphub/phphub.log에 배치하는 예를 들어보겠습니다.

로그 처리 클래스 추가#

먼저 app/Foundation/Bootstrap/ConfigureLogging.php라는 새 파일을 만듭니다. , 코드는 다음과 같습니다:

<?php
namespace App\Foundation\Bootstrap;
use Illuminate\Log\Writer;
use Illuminate\Contracts\Foundation\Application;
class ConfigureLogging
{
 /**
 * 设置应用的Monolog处理程序
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @param \Illuminate\Log\Writer $log
 * @return void
 */
 public function configureHandlers(Application $app, Writer $log)
 {
 $method = &#39;configure&#39;.ucfirst($app[&#39;config&#39;][&#39;app.log&#39;]).&#39;Handler&#39;;
 $this->{$method}($app, $log);
 }
 /**
 * 设置应用single模式下的Monolog处理程序
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @param \Illuminate\Log\Writer $log
 * @return void
 */
 protected function configureSingleHandler(Application $app, Writer $log)
 {
 $config = $app->make(&#39;config&#39;);
 $filename = $config->get(&#39;app.log_path&#39;, &#39;/var/log/nginx/app/system&#39;) . &#39;/&#39; . $config->get(&#39;app.log_name&#39;, &#39;laravel&#39;) . &#39;.log&#39;;
 $log->useFiles($filename);
 }
 /**
 * 设置应用daily模式下的Monolog处理程序
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @param \Illuminate\Log\Writer $log
 * @return void
 */
 protected function configureDailyHandler(Application $app, Writer $log)
 {
 $config = $app->make(&#39;config&#39;);
 $filename = $config->get(&#39;app.log_path&#39;, &#39;/var/log/nginx/app/system&#39;) . &#39;/&#39; . $config->get(&#39;app.log_name&#39;, &#39;laravel&#39;) . &#39;.log&#39;;
 $log->useDailyFiles(
 $filename,
 $app->make(&#39;config&#39;)->get(&#39;app.log_max_files&#39;, 5)
 );
 }
 /**
 * 设置应用syslog模式下的Monolog处理程序
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @param \Illuminate\Log\Writer $log
 * @return void
 */
 protected function configureSyslogHandler(Application $app, Writer $log)
 {
 $log->useSyslog($app->make(&#39;config&#39;)->get(&#39;app.log_name&#39;, &#39;laravel&#39;));
 }
 /**
 * 设置应用errorlog模式下的Monolog处理程序
 *
 * @param \Illuminate\Contracts\Foundation\Application $app
 * @param \Illuminate\Log\Writer $log
 * @return void
 */
 protected function configureErrorlogHandler(Application $app, Writer $log)
 {
 $log->useErrorLog();
 }
}

로그 저장 경로 구성 #

Add

APP_NAME=phphub

in .env Add

/**
 * 应用程序名称
 */
&#39;name&#39; => env(&#39;APP_NAME&#39;, &#39;laravel&#39;),
/**
 * 日志位置
 */
&#39;log_path&#39; => &#39;/var/log/nginx/app/&#39; . env(&#39;APP_NAME&#39;, &#39;laravel&#39;),
/**
 * 日志文件名称
 */
&#39;log_name&#39; => env(&#39;APP_NAME&#39;, &#39;laravel&#39;),
/**
 * 日志文件最大数
 */
&#39;log_max_files&#39; => &#39;30&#39;,

새 처리 클래스를 config/app.php에 적용 #

Bootstrap/app.php 수정 , 대가로 $ 앱 앞에

$app->configureMonologUsing(function($monolog) use ($app) {
 $configureLogging = new App\Foundation\Bootstrap\ConfigureLogging();
 $configureLogging->configureHandlers($app, $app->log);
});

코드를 추가하세요. 이제 Log::info('test log info');测试一下,应该就会将日志记录在/var/log/nginx/app/phphub/phphub.log를 사용할 수 있습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 추천:

laravel 터미널에서 로그를 보는 방법

위 내용은 Laravel은 기본 로그 파일 이름과 위치를 변경합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.