本文实例讲述了Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法。分享给大家供大家参考,具体如下:

Laravel中使用monolog_mysql将系统日志信息保存到mysql数据库

源码参考: https://github.com/markhilton/monolog-mysql

一、安装Installation

在文件根目录:

composer require markhilton/monolog-mysql

发现composer.json文件里的"require"多了一行:

"markhilton/monolog-mysql": "^0.1.6",

如果执行报错检查php版本和laravel(5.5以上)版本,

或者可以自己手动粘贴"markhilton/monolog-mysql": "^0.1.6"到composer.json上去,

然后执行:

compser update

可以达到相同的效果

成功后发现vendor里面多了一个markhilton的文件夹

二、在config/app.php 的'providers'里面加入 代码如下:'providers' => array( // ... Logger\Laravel\Provider\MonologMysqlHandlerServiceProvider::class,);

三、生成数据库文件

Publish config using Laravel Artisan CLI.

php artisan vendor:publish

执行完上面语句发现database/migration里多了一个create_logs_table的文件

将文件重命名为 2018_03_14_034420_create_logs_table(一定要是这种格式的文件名才可以执行数据库迁移)

可以自定义数据库表名称,默认为logs ,在这里我改成sys_log

然后执行下面语句:

四、数据库迁移Migrate tables.

php artisan migrate

生成了一个sys_log的表

五、应用集成 Application Integration

在bootstrap/app.php里面加入

$app->configureMonologUsing(function($monolog) use($app) { $monolog->pushHandler(new Logger\Monolog\Handler\MysqlHandler());});

六、配置环境 Environment configuration

在.env的配置文件中加入(保存日志的数据库连接类型,以及保存日志的表名称)

DB_LOG_TABLE=sys_log //保存日志的数据库表名称

DB_LOG_CONNECTION=mysql //保存日志的数据库连接类型

七、修改

真正实现将日志插入数据库的核心文件位置在:

/vendor/markhilton/monolog-mysql/src/Logger/Monolog/Handler/MysqlHandler.php

将自定义的表名称修改为sys_log

namespace Logger\Monolog\Handler;

use DB;

use Illuminate\Support\Facades\Auth;

use Monolog\Logger;

use Monolog\Handler\AbstractProcessingHandler;

class MysqlHandler extends AbstractProcessingHandler

{

protected $table;

protected $connection;

public function __construct($level = Logger::DEBUG, $bubble = true)

{

$this->table = env('DB_LOG_TABLE', 'sys_log');

$this->connection = env('DB_LOG_CONNECTION', env('DB_CONNECTION', 'mysql'));

parent::__construct($level, $bubble);

}

protected function write(array $record)

{

$data = [

'instance' => gethostname(),

'message' => $record['message'],

'channel' => $record['channel'],

'level' => $record['level'],

'level_name' => $record['level_name'],

'context' => json_encode($record['context']),

'remote_addr' => isset($_SERVER['REMOTE_ADDR']) ? ip2long($_SERVER['REMOTE_ADDR']) : null,

'user_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null,

'created_by' => Auth::id() > 0 ? Auth::id() : null,

'created_at' => $record['datetime']->format('Y-m-d H:i:s')

];

DB::connection($this->connection)->table($this->table)->insert($data);

}

}

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

monolog mysql_Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法...相关推荐

  1. monolog 存入mysql_Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的...

    本文实例讲述了Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法.,具体如下: Laravel中使用monolog_mysql将系统日志信息保存到mysql ...

  2. 在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载...

    这是我花了很多天的时间才得以真正实现的一组需求. 文章后面有完整Demo的GitHub链接. 一. 需求描述 1. 应用是基于ThinkPHP5开发的: 2. 服务器环境是LNMP,PHP版本是7.2 ...

  3. abp 使用mysql_在Abp框架中使用Mysql数据库的方法以及相关问题小记

    最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后, ...

  4. Scrapy框架学习 - 爬取豆瓣电影排行榜TOP250所有电影信息并保存到MongoDB数据库中

    概述 利用Scrapy爬取豆瓣电影Top250排行榜电影信息,并保存到MongoDB数据库中 使用pymongo库操作MOngodb数据库 没有进行数据清洗 源码 items.py class Dou ...

  5. 36-Scrapy框架-西刺网代理爬取+存储到MySQL

    目的: 爬取西刺网https://www.xicidaili.com/nn下3799页的代理相关信息 将爬取的信息存储到mysql数据库 采用基于spider类的Scrapy框架爬虫,所以在构建爬取页 ...

  6. python scrapy框架爬取知乎提问信息

    前文介绍了python的scrapy爬虫框架和登录知乎的方法. 这里介绍如何爬取知乎的问题信息,并保存到mysql数据库中. 首先,看一下我要爬取哪些内容: 如下图所示,我要爬取一个问题的6个信息: ...

  7. 基于PHP+小程序(MINA框架)+Mysql数据库的食堂餐厅就餐预约小程序系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信高校食堂就餐预约小程序系统,前台用户使用小程序,小程序使用微信开发者工具开发:后台管理使用基PP+MySql的B/S架构,开发工具使用p ...

  8. 基于Java后台(Springboot框架)+前端小程序(MINA框架)+Mysql数据库的教室图书馆座位预约小程序系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序预约订座小程序,前台用户使用小程序,后台管理使用Java+Mysql开发,后台使用了springboot框架:通过后台添加座位类型 ...

  9. MySQL数据库事务、mybatis框架、spring框架、springmvc框架、永和大王门店管理系统(框架第二部分)

    第十二章 MySQL数据库事务 一. 事务及四大特性 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 ...

最新文章

  1. 中国科学家发现恐惧情绪的新环路
  2. 调用ajax后页面为什么会刷新,为什么页面在JQuery ajax调用之后重新加载?
  3. 离职交接文档_关于工作交接
  4. 使用MessageFormat格式化数字,日期
  5. 最佳实践:如何基于MNS和OSS实现无大小限制的消息传输
  6. Gartner:2021全球安全和风险支出将超1500亿美元
  7. Spring容器创建流程(4)调用beanFactory后置处理器
  8. 【IDEA】idea Gradle 里面java类显示为灰色
  9. 全息营销话题提纲(2-1)--王甲佳全息营销系列15
  10. python简单代码-代码的重试机制(python简单实现)
  11. python人口普查数据数据分析_2010年第六次人口普查数据分析
  12. Axure RP 9基础教程(1)——界面及基本操作(看完就会画)
  13. Wiki管理工具有哪些?11款Wiki工具对比
  14. 原创Maya mel系列插件推荐
  15. 中小企业OA系统视频教程(更新程度:完毕)送ppt源码
  16. Codeforces 1389 C. Good String(枚举)
  17. NVIDIA GeForce GTX 1050 Ti性能如何
  18. 听java技术讲座心得体会_听讲座心得体会范文3篇
  19. LDO电路设计以及选型的几个重要参数
  20. JavaWeb开发概览

热门文章

  1. 小米13系列配置曝光 骁龙8 Gen2+2K大屏
  2. LeetCode打卡Day1
  3. mimemessage类是什么_Java MimeMessage类代码示例
  4. python 公众号爬虫_微信公众号文章爬虫
  5. 2022年充电宝哪个好,2022年值得入手的充电宝品牌
  6. Spring加载存放位置不同的beans.xml
  7. SVM有监督学习LinearSVC, LinearSVR,SVC,SVR -- 024
  8. 为 Android 8.0 强制开启全局圆形图标规范
  9. 【论文解析】NeRFInvertor: High Fidelity NeRF-GAN Inversion for Single-shot Real Image Animation
  10. 工商银行APP流水申请