首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

PHP日志管理神器 Monolog

Monolog 支持将日志消息发送到多种目的地,包括文件、套接字、电子邮件、数据库以及其他各种 Web 服务。...这通常在大型项目中非常有用(而且被Symfony2的MonologBundle所使用)。 假设有两个日志服务实例共享了一个处理器,这个处理器将日志写入单个日志文件。...中,可以很简单地来自定义日志的格式,无论是写入文件、套接字、邮件、数据库还是其他处理器。...信息 INFO (200): 有意义的事件,比如用户登录、SQL日志。 提示 NOTICE (250): 正常但是值得注意的事件。 警告 WARNING (300): 异常事件,但是并不是错误。...比如使用了废弃了的API,错误地使用了一个API,以及其他不希望发生但是并非必要的错误错误 ERROR (400): 运行时的错误,不需要立即注意到,但是需要被专门记录并监控到。

14110

Symfony2和Redis正名,基于PHP的10亿请求周网站打造

【编者按】如果你还在Symfony2和Redis使用中存在这样的错误观念:不能使用Redis作为主要存储;Symfony2的功能很多,以至于它的运行很慢,那么不妨看向Octivi的高请求网站打造。...对于低层次的Symfony2性能优化实践,我们写了专门的文章——掌握Symfony2性能系列——Internals 和Doctrine 首先是关于所描述应用的一些数据。...Application’s Architecture Symfony2功能 Symfony有一些很棒的功能,这些功能使开发过程变得更容易,下面我们绍开发者最喜欢的一些功能: 注释 我们使用带注释的Symfony2...Symfony2监控—Monolog和Stopwatch 应用使用Monolog记录意料之外的行为,捕获错误信息。我们使用多个信道获取不同应用模块的分离的日志。...因此本文的最后我们可以纠正一些错误观点: 不能使用Redis作为主要存储——如我们先前所说的,当然是可以的!Redis是一项很稳定的技术,有一些持续性机制,你不会丢失关键数据。

4.3K50

Laravel 5.5 异常处理 & 错误日志的解决

此外,Laravel 还集成了 Monolog 日志库以便提供各种功能强大的日志处理器,默认情况下,Laravel 已经为我们配置了一些处理器,我们可以选择单个日志文件,也可以选择记录错误信息到系统日志...使用 Monolog 的时候,日志消息可能有不同的错误级别,默认情况下,Laravel 将所有级别日志写到存储器,但是在生产环境中,你可能想要配置最低错误级别,这可以通过在配置文件 app.php 中添加配置项...'log_level' = env('APP_LOG_LEVEL', 'error'), 注:Monolog 支持以下错误级别:debug、info、notice、warning、error、critical...Illuminate\Auth\AuthenticationException::class, \Illuminate\Auth\Access\AuthorizationException::class, \Symfony...$monolog = Log::getMonolog(); 以上这篇Laravel 5.5 异常处理 & 错误日志的解决就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.4K31

使用HAProxy、PHP、Redis和MySQL支撑10亿请求每周架构细节

这个初创公司有许多所谓的前端网站,它们大多都使用了独立的数据库,并共享了一些支撑业务逻辑的通用代码。...冗长的日志同样是不可缺少的一部分,我们使用PHP Monolog库把这些日志处理成优雅的log-lines,便于开发者和管理员理解。...Error,当错误发生时请求流并未被终止,比如第三方API的错误响应。 Critical,应用程序崩溃的瞬间。 因此,你可以清晰地了解Error和Critical信息。...同时,日志被存储在不同的文件中,也就是Monolog库下的“channels”。...系统中有一个主日志文件,记录了所有应用程序级错误,以及各个channel的短日志,从单独的文件中记录了来自各个channel的详细日志。

2.8K60

PHP单元测试框架PHPUnit用法详解

总之一句话,使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配...composer require monolog/monolog 安装好之后,我们可以看coomposer.json 文件已经有这两个扩展包了: "require": { "monolog/monolog.../vendor/autoload.php'; define("ROOT_PATH", dirname(__DIR__) . "/"); use Monolog\Logger; use Monolog\Handler...会直接报出方法错误信息及行号,有助于我们快速找出bug 3、高级用法 你是否已经厌烦了在每一个测试方法命名前面加一个test,是否因为只是调用的参数不同,却要写多个测试用例而纠结?...Time: 0 seconds OK (4 tests) 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组

3K31

案例:数据库无法登录发生ORA-12560ORA-12557错误

Keyword: ORA-12560 ORA-12557 BEQ 数据库连接 登录 ##问题: Windows环境下进行数据库登陆时,发生ORA-12560/ORA-12557错误。...通常来讲,ORA-12560和ORA-12557错误常常是由于环境变量等设置不正确引起, 本文介绍连接错误基本的解决思路和方法。...##解决错误的基本思路: 1.确认用户连接方法和数据库认证方式,是否使用了Listener监听登陆,在BEQ登陆的方式下是否有同样的问题 2.查看网络相关的配置文件sqlnet.ora、listener.ora...、tnsnames.ora的配置 3.查看告警日志alert和trace中,发生问题时是否有其他的错误或异常发生 4.查看用户环境变量的设置 ##解决过程: 1.用户的连接方法: 用户在不使用监听...用户设定ORACLE_HOME和ORACLE_SID后连接发生ORA-12557错误

2.5K20

modern php 笔记(第一次阅读)

好的php组件特征 作用单一 小型 合作,组件就是为了和其他组件合作,组件会把代码放在自己的命名空间中,防止与其他组件有名称冲突 测试良好 文档完善 建议:最流行框架有: Aura Laravel Symfony...UTF-8) 密码 绝对不能知道用户的密码 绝对不要约束用户的密码 绝对不能通过电子邮件发送用户的密码 使用bcrypt计算用户密码的哈希值 验证密码 使用password_verify()函数 在登录之前一定要检查用户记录中现有的密码哈希值是否过期...PDO扩展 PDO实例的作用是把php和数据库连接起来 数据库连接和DSN PDO预处理语句及pdo中使用数据库的事务 多字节字符串 使用 mbstring扩展 否则可能会损坏多字节Unicode...@ 可以忽略错误,但是不建议这样做 关于报告错误的方式要满足以下几点: 一定要让php报告错误 在开发环境中要显示错误 在生产环境中不能显示错误 在开发环境和生产环境中都要记录错误 whoopse...组件 在开发环境中显示错误和异常 monolog 组件 在生产环境中 记录日志 主机 ==nginx的配置== 深入理解PHP之:Nginx 与 FPM 的工作机制 CGI和FastCGI协议 nginx

1.3K20

awesome-php

Cake Event - 一个事件调度类库 Broadway - 一个事件源和CQRS库 日志( Logging ) 用于生成和处理日志文件的库 Monolog - 一个综合的日志类库 KLogger...Sentry - 认证和授权系统 EvaOAuth - 统一接口的 OAuth 登录 PHP 类库 JSON Web Token- JSON网络令牌库 php-jwt jwt jose - JSON...一个简单的集合库 Collections - 一个集合抽象库 Fractal - 一个将复杂数据结构转换为JSON输出的库 PHP Collections - 一个简单的集合库 Serializer - 用于序列化和反序列化数据的库...Zend Serializer - 另一个用于序列化和反序列化数据的库 PHP Object Storage - 一个用于对象存储的库 Totem - 一个管理和创建数据修改集的库 PINQ - PHP...Atlas - 360开源数据库中间件 DBProxy - 美团点评基于Atlas的数据库中间件 Mycat TiDB - 分布式数据库 mysql-proxy - Swoole开源的数据库中间件 RPC

8.6K90

如何在Ubuntu 18.04上使用LEMP将Symfony 4应用程序部署到生产中

事实上,即使blog-admin尝试使用他们的密码登录,他们也无法访问MySQL shell。 在访问或执行数据库上的特定操作之前,用户需要正确的权限。...要测试您是否正常,请退出MySQL客户端: quit; 然后使用您刚创建的MySQL用户的凭据再次登录,并在出现提示时输入密码: mysql -u blog-admin -p 检查用户是否可以访问数据库...接下来,您将设置数据库凭据。 第4步 - 设置数据库凭据 为了从之前创建的应用程序数据库中检索数据,您需要在Symfony应用程序中设置和配置所需的数据库凭据。...: sudo nginx -t 如果有错误,此命令将向控制台输出错误。...一旦没有错误,运行此命令重新加载Nginx: sudo systemctl reload nginx 您刚刚结束了成功部署Symfony 4应用程序所需的最后一步。

4.8K113

微服务系列 | 简洁强大的YAML解析库读取Yaml配置文件

YAML(YAML Ain't Markup Language)是一种数据序列化语言,它的设计目标是为了使人类可读性更高,同时也易于编写程序进行解析。...Symfony YAML组件 Symfony YAML组件是一个强大的PHP库,用于处理YAML配置文件。该组件可以轻松地将YAML数据转换为PHP数组,并且可以方便地对PHP数组进行序列化。...特点 易用性:Symfony Yaml 提供了一个简单直接的 API,使得操作 YAML 数据变得非常容易。...灵活性:Symfony Yaml 支持多种不同的 YAML 样式和特性,包括锚点、别名、标签等。 强大性:Symfony Yaml 具有强大的错误处理能力,能够捕获并报告各种类型的解析错误。...接下来,我们使用Yaml::dump方法将PHP数组序列化为YAML格式。 高级用法 高级用法主要是结合项目框架使用,不忘初衷的webman,那就是你了!!!

10310

从偶遇Flarum开始的RCE之旅

现代PHP项目想要getshell,常见的方法有下面几个: 文件上传漏洞 路由错误导致的函数执行漏洞,比如ThinkPHP 5的两个RCE 模板注入漏洞,比如Cachet这个后台getshell 反序列化漏洞...文件上传漏洞是传统漏洞了,但如果规范使用Web框架是不太会出现的,特别是现代的Laravel等框架;路由错误导致的函数执行漏洞多出现于上一代的MVC框架,这类框架会将用户输入解析成class name...和method name再动态调用,而现在的框架路由多是定义一个完整的路由,Flarum也是这样;模板注入漏洞在后台功能中相对较多,有时候甚至直接就是PHP代码(WordPress);反序列化漏洞多出现在数据库... Monolog/RCE6 system id 因为Flarum使用了monolog,我选择了Monolog/RCE6这条利用链,本地测试可以正常触发反序列化执行命令: 那么现在就需要想办法将这个phar...manifest header) 当然,这也可能是我修复偏移方式有错误,可以后面再深入研究,暂时认为zip格式无法满足要求。

1.2K40

如何在Ubuntu 14.04上将Symfony应用程序部署到生产环境中

如果您使用我们的一键单击(LAMP / LEMP),您将在登录到服务器时打印的日期文本消息中找到MySQL root密码。当天的消息内容也可以在/etc/motd.tail文件中找到。...设置默认排序规则和字符集 Symfony建议将数据库的charset和collation设置为utf8。...quit; 现在再次登录,这次使用您刚刚创建的新MySQL用户和密码。在此示例中,我们使用用户名todo-user,密码为todo-password。...很难概括,因为每个用例都需要非常具体的部署步骤,例如迁移数据库或运行额外的设置命令。 为了简化教程流程,我们将使用Symfony构建基本的演示应用程序。...Symfony适用于不同环境。默认情况下,它将使用开发设置,这会影响它处理缓存和错误的方式。开发环境具有更广泛和详细的日志,更少的缓存内容,并且以显着的方式展示错误以简化调试。

12.7K20

yii2反序列化后续

其中有一个是我之前忽略了的,就想着赶紧分享给大家,但是昨天恰了个饭(文末有福利),发不了文章,只有今天发了 这是一条利用__wakeup魔术方法作为入口的利用链,然后我就去看了看,有所收获,所以简单和大家分享一下 问题出在Symfony...normalizer_is_normalized,我一开始没有想到这个函数也会把参数当做字符串处理,也就是说这里也可以利用__toString进一步利用 结合前文,我们可以很轻松的构造一条利用链出来: Symfony...我当时也没有去搜这个错误是啥意思,以为是normalizer_is_normalized内部还有其他机制,然后我就去找了一下其他的__toString方法,但是都报这个错(其它利用链我会在后面提到) 后来去查了一下...> yii2真是一个练习反序列化连挖掘的好靶场,我们可以通过它来练习各种魔术方法在反序列化链构造中的使用 php所有的魔术方法如下: __construct(),类的构造函数 __destruct()...可以看到,($this->value)()这种形式是利用不了__invoke的 简单记录下这个错误,也算是给大家排个坑吧

1.1K30

收藏了8年的PHP优秀资源,都给你整理好了

Notadd - 基于 Laravel 和 Vue 的开源 PHP 框架 KiteCms YFCMF Flarum - 基于 PHP 和 Mithril.js 开发的轻社区 PHPDish - 基于 Symfony...*[GitHub*] - PHP AOP框架 ToroPHP - 微型路由框架 Fat-Free Framework 软件/类库 未归类 SmartWiki - 支持MD的文档工具 Monolog Hoa.../异常 Whoops - 异常/错误处理类 BooBoo - 异常/错误处理类 PHP-Error 调试工具 PHP Debug Bar API phprs - 一款轻量、类jax-rs、实用的PHP框架...Doctine *[GitHub*] - PHP数据库ORM(该组织还有其他优秀的开源项目) RedBeanPHP *[GitHub*] - ORM映射框架 Phinx *[GitHub*] - 数据库迁移工具...PHP Benchmark - PHP性能测试工具 FirePHP - PHP Debug工具 Thrift for PHP msgpack.php Hprose for PHP - 高性能的跨语言序列化

2.2K30

PortSwigger之不安全的反序列化+服务器端模板注入漏洞笔记

您可以使用以下凭据登录自己的帐户:wiener:peter 解决方案 1.登录到您自己的帐户并注意会话 cookie 包含一个序列化的 PHP 对象。...错误消息显示该网站正在使用Symfony 4.3.6框架。.../phpggc Symfony/RCE4 exec 'rm /home/carlos/morale.txt' | base64 这将生成一个Base64编码的序列化对象,该对象利用Symfony中的RCE...该错误消息确认该网站容易受到通过此反序列化对象进行的基于 Postgres 的SQL 注入的攻击。 编译运行。 url编码放到burp替换cookie验证,pgsql语法错误。...您可以使用以下凭据登录自己的帐户: content-manager:C0nt3ntM4n4g3r 解决方案 1.通过错误信息来获取模板类型,登录并编辑其中一个产品描述模板。

2K10
领券