您好,欢迎访问一九零五行业门户网

laravel 日志保存目录问题;

laravel的日志保存目录能不能不保存到 storage/logs 目录下?怎么修改?
可不可以自定义文件名?
按照文档配置按日期分割,不管用!还是在laravel.log 里面追加。
回复内容: laravel的日志保存目录能不能不保存到 storage/logs 目录下?怎么修改?
可不可以自定义文件名?
按照文档配置按日期分割,不管用!还是在laravel.log 里面追加。
自定义日志
method 1->简单粗暴use monolog\handler\streamhandler;use monolog\logger;$log = new logger('vikin');$log->pushhandler( new streamhandler( storage_path('logs/vikin.log'), logger::info ));$log->addinfo(test);
method2->基于configurelogging基类1、可以使用该方法对laravel原有日志覆盖【一个info,其他级别可自行扩展】
2、作为一个laravel扩展,在需要单独记录日志的地方记录;
1、创建一个类,继承自configureloggingnamespace 你自定义命名空间\configurelogging;use illuminate\foundation\bootstrap\configurelogging as baseconfigurelogging;use monolog\formatter\lineformatter;use monolog\handler\streamhandler;use monolog\logger;class customlog extends baseconfigurelogging{ protected function configuresinglehandler(application $app, writer $log) { // 同方法1一样, 设置日志路径、设置日志级别 $path = storage_path('logs/vikin.log'); $level = logger::info; $logstreamhandler = new streamhandler($path, $level); // 日志格式:使用laravel原有格式: // the default output format is [%datetime%] %channel%.%level_name%: %message% %context% %extra%\n $format = [%datetime%] %channel%.%level_name%: %message% %context% %extra%\n; $formatter = new lineformatter($format); $logstreamhandler->setformatter($formatter); // 输出日志 $logger = $log->getmonolog(); $logger->pushhandler($logstreamhandler); }}
重写configuresinglehandler就相当于重写了一个日志处理器;
3、自动加载修改根目录下的composer.json文件
psr-4: { app\\: app/, 你自定义命名空间\\: 文件路径/}
4、覆盖在/app/http/kernel.php文件中,扩展kernel类的构造方法
use illuminate\contracts\foundation\application;use illuminate\contracts\events\dispatcher;public function __construct(application $app, dispatcher $events){ parent::__construct($app, $events); array_walk($this->bootstrappers, function(&$bootstrapper) { if($bootstrapper === 'illuminate\foundation\bootstrap\configurelogging') { //替换为我们自定义的日志处理器 $bootstrapper = '你自定义命名空间\configurelogging'; } });}
5、使用log::info('自定义log处理器');
6、扩展创建一个serviceprovider和facade(个人习惯喜欢使用facade);添加至app config中,使用composer自动加载即可;
其它类似信息

推荐信息