Laravel 修改默认日志文件名称和位置

Laravel 修改默认日志文件名称和位置

修改默认日志位置

我们平常的开发中可能一直把laravel的日志文件放在默认位置不会有什么影响,但如果我们的项目上线时是全量部署,每次部署都是git中最新的代码,那这个时候每次都会清空我们的日志,显示这不是我们所期望的,好在laravel有提供我们修改的方法。

我们这里以放在/var/log/nginx/app/phphub/phphub.log为例

增加日志处理类#

首先我们新建文件,app/Foundation/Bootstrap/ConfigureLogging.php,代码如下:

  1. <?php

  2.  
  3. namespace App\Foundation\Bootstrap;

  4.  
  5. use Illuminate\Log\Writer;

  6. use Illuminate\Contracts\Foundation\Application;

  7.  
  8. class ConfigureLogging

  9. {

  10.  
  11. /**

  12. * 设置应用的Monolog处理程序

  13. *

  14. * @param \Illuminate\Contracts\Foundation\Application $app

  15. * @param \Illuminate\Log\Writer $log

  16. * @return void

  17. */

  18. public function configureHandlers(Application $app, Writer $log)

  19. {

  20. $method = 'configure'.ucfirst($app['config']['app.log']).'Handler';

  21.  
  22. $this->{
    $method}($app, $log);

  23. }

  24.  
  25. /**

  26. * 设置应用single模式下的Monolog处理程序

  27. *

  28. * @param \Illuminate\Contracts\Foundation\Application $app

  29. * @param \Illuminate\Log\Writer $log

  30. * @return void

  31. */

  32. protected function configureSingleHandler(Application $app, Writer $log)

  33. {

  34. $config = $app->make('config');

  35. $filename = $config->get('app.log_path', '/var/log/nginx/app/system') . '/' . $config->get('app.log_name', 'laravel') . '.log';

  36. $log->useFiles($filename);

  37. }

  38.  
  39. /**

  40. * 设置应用daily模式下的Monolog处理程序

  41. *

  42. * @param \Illuminate\Contracts\Foundation\Application $app

  43. * @param \Illuminate\Log\Writer $log

  44. * @return void

  45. */

  46. protected function configureDailyHandler(Application $app, Writer $log)

  47. {

  48. $config = $app->make('config');

  49. $filename = $config->get('app.log_path', '/var/log/nginx/app/system') . '/' . $config->get('app.log_name', 'laravel') . '.log';

  50. $log->useDailyFiles(

  51. $filename,

  52. $app->make('config')->get('app.log_max_files', 5)

  53. );

  54. }

  55.  
  56. /**

  57. * 设置应用syslog模式下的Monolog处理程序

  58. *

  59. * @param \Illuminate\Contracts\Foundation\Application $app

  60. * @param \Illuminate\Log\Writer $log

  61. * @return void

  62. */

  63. protected function configureSyslogHandler(Application $app, Writer $log)

  64. {

  65. $log->useSyslog($app->make('config')->get('app.log_name', 'laravel'));

  66. }

  67.  
  68. /**

  69. * 设置应用errorlog模式下的Monolog处理程序

  70. *

  71. * @param \Illuminate\Contracts\Foundation\Application $app

  72. * @param \Illuminate\Log\Writer $log

  73. * @return void

  74. */

  75. protected function configureErrorlogHandler(Application $app, Writer $log)

  76. {

  77. $log->useErrorLog();

  78. }

  79. }

配置日志存放路径#

在.env中增加

APP_NAME=phphub

在config/app.php中增加

  1. /**

  2. * 应用程序名称

  3. */

  4. 'name' => env('APP_NAME', 'laravel'),

  5.  
  6. /**

  7. * 日志位置

  8. */

  9. 'log_path' => '/var/log/nginx/app/' . env('APP_NAME', 'laravel'),

  10.  
  11. /**

  12. * 日志文件名称

  13. */

  14. 'log_name' => env('APP_NAME', 'laravel'),

  15.  
  16. /**

  17. * 日志文件最大数

  18. */

  19. 'log_max_files' => '30',

应用我们新的处理类#

修改Bootstrap/app.php,在return $app前增加代码

  1. $app->configureMonologUsing(function($monolog) use ($app) {

  2. $configureLogging = new App\Foundation\Bootstrap\ConfigureLogging();

  3. $configureLogging->configureHandlers($app, $app->log);

  4. });

这时候我们可以使用\Log::info('test log info');测试一下,应该就会将日志记录在/var/log/nginx/app/phphub/phphub.log中了。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113138.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jdbc自建工具类

    jdbc自建工具类

    2021年10月3日
    41
  • apache24+php8配置

    apache24+php8配置电脑下载安装地址:Xampp安装完成后找到里面的apache》config》httpd.config:首先注释掉默认的路径DocumentRoot”D:/software/Xampp/htdocs”;然后再找到IfModuledir_module在后面追加:<IfModuledir_module>DirectoryIndexindex.phpindex.htmlindex.htmdefault.phpdefault.htmldefault.htmhome.

    2022年7月12日
    14
  • Gazebo/ROS中添加力、力矩

    Gazebo/ROS中添加力、力矩文章目录前言一、在gazebo图形界面中进行操作二、MATLABmathworks官网ROS与Matlab语言入门教程-在Gazebo中应用力和力矩三、ROSANSWERS[优]applyingaforcetoarigidbody[次]Applyingaforcetoalinkingazeboplugin.[closed]前言不一定全面,未来还需要继续梳理…

    2022年5月15日
    74
  • ajax用法示例_json.tojavaobject

    ajax用法示例_json.tojavaobject这次给大家带来Ajax与$.ajax实例详解,Ajax与$.ajax使用的注意事项有哪些,下面就是实战案例,一起来看一下。实例一(Ajax请求基本创建格式):Ajax练习(GET,不考虑浏览器兼容性)functiondoRequest(){//不考虑浏览器兼容性问题varxmlHttp=newXMLHttpRequest();//打开一个与Http服务器的连接xmlHttp.open(…

    2022年8月16日
    3
  • Voliate

    Voliate1、voliate的理论作用:A、保证可见性B、保证指令不重新排2、可见性原理:a.保证写后的数据马上回写到系统内存b。根据缓存一致性协议,保证写后,数据在总线声明为过期,其他已经读取过这个变量的处理器会通过嗅探技术,发现自己的数据内存被修改,声明无效,如果要修改,则会重新去读取,但是,如果不修改,则不会去读取c.不能保证原子性代码:while(i==1){i++;}…

    2022年4月28日
    69
  • pycharm使用python_pycharm和pytorch区别

    pycharm使用python_pycharm和pytorch区别本小节只讲如何通过pycharm使用pytorch,pytorch的详细安装点击这里https://blog.csdn.net/huang_shao1/article/details/82958551anaconda的详细安装点击这里https://blog.csdn.net/huang_shao1/article/details/82958615如图所示,我们编辑好了自己pytorch项…

    2022年8月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号