网站首页文章详情

Laravel 中自定义日志目录

发布时间:2019-07-05 10:34编辑:胜男

<p>https://learnku.com/articles/7125/custom-log-directory-in-laravel</p><p><br/></p><p>通过以上思路自己写了个公共类如下</p><pre class="brush:php;toolbar:false;">&lt;?php //&nbsp;+---------------------------------------------------------------------- //&nbsp;|&nbsp;Laravel //&nbsp;+---------------------------------------------------------------------- //&nbsp;|&nbsp;Copyright&nbsp;(c)&nbsp;2014~2020&nbsp;http://ganhuoche.com&nbsp;All&nbsp;rights&nbsp;reserved. //&nbsp;+---------------------------------------------------------------------- //&nbsp;|&nbsp;Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;zuopeng&nbsp;&lt;zuopeng@ganhuoche.com&gt; //&nbsp;+---------------------------------------------------------------------- //&nbsp;|&nbsp;CreateTime&nbsp;:&nbsp;2019/7/5&nbsp;10:46&nbsp; //&nbsp;+---------------------------------------------------------------------- //&nbsp;|&nbsp;使用方式:LogCommon::info(&#39;info&#39;);&nbsp;or&nbsp;LogCommon::init([&#39;dir&#39;=&gt;&#39;dir&#39;])-&gt;info(&#39;info&#39;); //&nbsp;+---------------------------------------------------------------------- namespace&nbsp;App\Services\Admin\Common; class&nbsp;LogCommon { &nbsp;&nbsp;&nbsp;&nbsp;//根目录 &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;static&nbsp;$pathRoot&nbsp;&nbsp;=&nbsp;&#39;logs/&#39;; &nbsp;&nbsp;&nbsp;&nbsp;//默认目录 &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;static&nbsp;$path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&#39;admin/&#39;; &nbsp;&nbsp;&nbsp;&nbsp;//自定义文件夹 &nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;static&nbsp;$dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&#39;&#39;; &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$param &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;LogCommon &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;init($param&nbsp;=&nbsp;[]){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isset($param[&#39;path&#39;])){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$path&nbsp;=&nbsp;$param[&#39;path&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isset($param[&#39;dir&#39;])){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$dir&nbsp;=&nbsp;$param[&#39;dir&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;self(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;function&nbsp;initLog(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$monolog&nbsp;=&nbsp;\Log::getMonolog(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$monolog-&gt;popHandler(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Log::useDailyFiles(storage_path(self::$pathRoot.self::$path.self::$dir.&#39;info.log&#39;)); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;info($str=&#39;&#39;){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::initLog(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Log::info($str); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;error($str=&#39;&#39;){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::initLog(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\Log::error($str); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$dir &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;setDir(string&nbsp;$dir) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$dir&nbsp;=&nbsp;$dir; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$path &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;function&nbsp;setPath(string&nbsp;$path) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::$path&nbsp;=&nbsp;$path; &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p><br/></p>