首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让Logger在Doctrine MongoDB ODM中工作?

在Doctrine MongoDB ODM中使Logger工作,可以通过以下几个步骤来完成:

  1. 安装Logger库

首先,你需要安装一个Logger库,例如Monolog。你可以使用Composer来安装它:

代码语言:txt
复制
composer require monolog/monolog
  1. 配置Logger

接下来,你需要配置Logger。在你的项目中创建一个新的文件,例如logger.php,并添加以下内容:

代码语言:php
复制
<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$logger = new Logger('mongodb_odm_logger');
$handler = new StreamHandler('mongodb_odm.log', Logger::DEBUG);
$logger->pushHandler($handler);

这将创建一个新的Logger实例,并将其日志输出到名为mongodb_odm.log的文件中。你可以根据需要调整日志级别和输出文件。

  1. 将Logger注入到MongoDB ODM中

为了让Logger在MongoDB ODM中工作,你需要将其注入到ODM的事件管理器中。你可以通过以下代码实现这一点:

代码语言:php
复制
<?php

use Doctrine\Common\EventManager;
use Doctrine\MongoDB\Connection;
use Doctrine\ODM\MongoDB\Configuration;
use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;

require_once 'logger.php'; // 引入Logger配置文件

$config = new Configuration();
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir(__DIR__ . '/Hydrators');
$config->setHydratorNamespace('Hydrators');
$config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Documents'));

$evm = new EventManager();
$evm->addEventSubscriber(new \Doctrine\ODM\MongoDB\LoggableCursor($logger)); // 注入Logger

$dm = DocumentManager::create(new Connection(), $config, $evm);

现在,当你在MongoDB ODM中执行查询时,所有的查询操作都将被记录到mongodb_odm.log文件中。

这样,你就可以在Doctrine MongoDB ODM中使用Logger了。如果你需要更多的自定义选项,你可以查看Monolog和Doctrine MongoDB ODM的文档以获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel实战技巧79: 工作创建输入的密码显示*号的登录界面

学习Excel技术,关注微信公众号: excelperfect 工作,我们可以创建简单的用户名和密码登录框,并且像专业的密码框界面那样,在用户输入密码时显示的是*号。...第1步:工作添加文本框 单击功能区“开发工具”选项卡“控件”组的“插入——ActiveX控件——文本框“,如下图1所示。 ?...图1 工作插入两个文本框,并将其大小和位置进行适当地调整,如下图2所示。 ? 图2 第2步:设置文本框属性 要想使得文本框输入时掩盖其中的内容,需要设置其属性。...注意,在这种情况下,虽然看起来输入的密码被掩盖了,但仍然存储工作,这样他人可轻松从文本框中提取密码。...欢迎在下面留言,完善本文内容,更多的人学到更完美的知识。

3.7K10

awesome-php

以便在工作迅速的查找所需… 这个列表的内容有来自 awesome-php 的翻译, 有来自开发者周刊以及个人的积累等....- 同样还是一个图像处理库 GIF Frame Extractor - 一个提取GIF动画帧信息的库 GIF Creator - 从多幅图片中创建GIF动画的库 Image With Text - 图像嵌入文本的库...Migrations - 用于Doctrine的迁移库 非关系型数据库( NoSQL ) 处理NoSQL后端的库 MongoDB mongo-php-library - MongoDB...官方PHP库 MongoQB - 一个MongoDB的查询构建库 Monga - 一个MongoDB的抽象库 mongodm - MongoDB ORM php-mongo - PHP ODM for...数字( Numbers ) 处理数字的库 Numbers PHP - 一个处理数字的库 Math - 处理较大数字的库 ByteUnits - 一个二进制和测量系统解析、格式化和转换字节单位的库

8.6K90

Ubuntu 16.04上安装MongoDB(Xenial)

本数据库教程,我们将一步步指导您在Ubuntu 16.04上安装MongoDB,然后再介绍MongoDB一些基本特性和功能。 [077cdzz9n0.png] MongoDB是一个数据库引擎。...有关如何 配置文件自定义这些值和其他值的更多信息,请参阅MongoDB官方配置教程。 配置文件改完后,重新启动该服务,如以下部分所示。...如果没有身份验证,虽然可以访问MongoDB shell,但不允许连接到数据库。 步骤3创建的用户mongo-admin纯粹基于指定的角色来进行管理。...不妨叫它exampleDB:use exampleDB 确保此数据库具有读写权限(我们在上一部分的步骤7添加的权限)。 要显示当前工作数据库的名称,请运行db命令。...这些驱动程序的优点是允许使用不同语言的程序调用相同的数据库,而不需要对象数据映射器(ODM)。但是,如果您确实想使用ODM,则可以使用许多支持良好的ODM

5.3K30

GoSnaps:如何支持5天50万用户服务器只花100元

同时在线人数大概1000,已经上传的截图数目接近20万,应用还包括一个图像检测和缩放工具。所有这些都部署一个100美元的谷歌云服务器上,而且表现很不错。...如果不考虑扩展性就是要开发速度的话,把截图存储MongoDB最方便了,基本什么都不用做。查询截图也可以对所有已上传的图片直接用查询语句,一个数据集,一个查询语句,够简单吧。...其实做这些提高扩展性的工作只多花了我两三个小时,区别在于一开始有没有考虑这些问题。我开发这款应用就是为了它成功的所以必须考虑扩展性,如果开发一款应用是为了不要让太多用户用那干脆别开发了。...试想一下如果我用的是Symfony和Doctrine恐怕光运行代码就得好几个服务器。...这时候我们还在用PHP、Symfony2、DoctrineMongoDB因为我之前的公司有两亿活跃用户也用的PHP。

1.3K100

Node.js中常见的异步等待设计模式

我已经用co编写了这些设计模式,但异步/等待使得这些模式可以vanilla Node.js访问,不需要外部库。...iffor 重试失败的请求 其强大之await处在于它可以你使用同步语言结构编写异步代码。例如,下面介绍如何使用回调函数使用superagent HTTP库重试失败的HTTP请求。...我记得我第一次尝试这种模式与合作,我感到莫名其妙,它实际工作。但是,下面的就不能正常工作。请记住,await必须始终async函数,而传递给forEach()下面的闭包不是async。...MongoDB游标有几个辅助函数,如each(),,map()和toArray(),猫鼬ODM增加了一个额外的eachAsync()函数,但它们都只是语法上的糖next()。...请注意,下面的代码并没有Node.js的任何目前发布的版本工作,这只是什么是可能在未来的一个例子。

4.7K20

我的NodeJS学习之路6(数据库设计及开发)

非关系型数据库的解决思路: 文章的Collection增加一个SubCollection,SubCollection可以存放用户信息,如用户名,只要有用户喜欢了文章,在这篇文章的文档的子文档下插入一条记录即可...项目中的Mongodb设计 NodeJS的流行,离不开丰富的中间件支持,对于操作Mongoose的中间件,我推荐“mongoosejs”, 官网称之为:“Mongoose ODM”。...关于orm和odm: ORM:Object Relational Mapping,对象关系映射 ODM:Object Document Mapping,对象文档映射 其实两者知识技术名词上的区别,...说到这里,我们先来说一个其他的问题:“关于Mongodb两个集合之间的对应关系,设计呢?”...如果既需要通过A查询B,又需要通过B查询A(如作者和文章,需要查询某作者下的所有文章,展示文章的时候,有需要展示作者的相关信息),那么可以子集合通过一个唯一字段关联父集合。

2.8K10

Composer 镜像原理 (2) —— composer.json

组件的朋友, 应该会注意到组件里头会有一个文件 composer.json, 它描述了组件的信息: 名称, 描述, 关键词, 作者, GitHub仓库地址...还有它所依赖的子组件, 是 Composer 工作的核心..."graylog2/gelf-php": "^1.4.2", "sentry/sentry": "^0.13", "ruflin/elastica": ">=0.90 <3.0", "doctrine...": "Allow sending log messages to a MongoDB server (via driver)", "mongodb/mongodb": "Allow sending...exclude vendor", "phpunit" ] } } 安装依赖的时候, 最重要的字段是 name, require 以及 require-dev. name 该字段标识了组件的名称, ...所有 的组件, 它是唯一的; require 该字段列举出该组件 所需的运行环境 以及 依赖的子组件的版本, 安装该组件时, 会检测运行环境, 并安装该组件的子组件, 以及这些子组件的所有子组件...

33700

2011年最热门的PHP开源项目回顾

本文来自于对活跃SourceForge和GitHub上的项目的分析研究,同时我也Twitter上向大家进行了调查,以免漏掉了很热门但是我却不知道的项目。...Symfony 2为定义模块提供了一个Bundle API,你可以应用程序之间进行模块移植。 此外,Symfony 2 有21个独立的组件,每个组件可当作一个独立的库。...Doctrine 和 NoSQL 映射器 Doctrine 2是成熟的ORM(对象关系映射),基于数据库抽像层,可以通过PHP对象轻松访问所有的数据库。...2、声明查询,可以用MongoDB。 3、以图形形式管理数据,可以用OrientDB。 3....Moodle 我对电子学习领域的研究,无所不在一个工具就是Moodle(Modular Object-Oriented Dynamic Learning En vironment,模块化面向对象的动态学习环境

1.7K30

Node.js 服务连接 MongoDB 处理最佳实践

平台最常用的 MongoDB ODM mongoose),斗胆称之为『最佳实践』,希望能够抛砖引玉,得到大家更专业的解答。...所有涉及到数据库读写操作的命令均会立即返回错误,而不会等待重连进而造成接口超时 服务启动并成功与数据库建立连接后,如果数据库出现问题造成连接中断,服务会自动尝试重连直到连接成功 无需手动处理连接数 我们逐条来看每个需求对应的配置: 见注释 A,开发环境设置...见两处注释 B,这里贴一段 mongoose 文档对 bufferMaxEntries 的解释: bufferMaxEntries - The MongoDB driver also has its...核心意思就是将 bufferMaxEntries 设为 0 同时将 bufferCommands 设为 false,可以驱动未连接到数据库的时候,操作立即返回失败,而不是一直等待重连。...解决方法也不是没有,就是比较鸡肋: mongoose 连接的 'error' 事件监听回调函数尝试重连。但是需要设置最大重试次数,否则会发生内存泄露。

3.4K20

mongodb原生node驱动

写在前面 最近读《node.js学习指南》,对于mongodb没有介绍太多的工作原理,但是对于一个前端开发者,即使你还没有用过这种数据库也可以你很好的理解和使用 一本非常好的介绍node.js的书,我一直把他放在触手可及的地方...Collection MongoDB并没有表的概念,我们需要一个集合. 1、在数据库创建一个collection集合对象 db.createCollection('mycollection',function...){ }) 为collection添加数据   添加数据之前,我们要知道node mongodb driver 与mongodb数据类型存在一种映射关系(但是对于数据转换背后的处理机制我还不是理解的很清楚...使用supervisor命令代替node,这样修改文件之后,不需要每次通过node命令重启服务 那么我们命令行看下结果吧- - 然后我们mongodb数据库中看下数据结果:(如果你已经配置好了mongo...虽然原始驱动提供了数据库的连接,但是缺少更高级别的抽象,有些繁琐,所以有时候你需要使用类似mongoose的ODM, mongoose构建在mongodb之上,提供了Schema、Model和Document

2.6K60

SQL注入不行了?来看看DQL注入

在这种情况下,内置ORM库的SQL语言就特别让人感兴趣了。它是一个附加的抽象语言,将语言的表达式转换为SQL的特定功能实现时是否也可能会存在漏洞呢?...本文主要介绍关于用PHP编写的Doctrine项目和利用Doctrine Query Language注入(以下简称DQL注入)。流行的Symfony PHP框架默认使用Doctrine。...您可以通过对PHP代码的对象执行操作(使用QueryBuilder)以及手动执行DQL查询来使用Doctrine。也可以直接在SQL执行原始查询。...DQL 注入 下图是代码中使用对象时,我们用来创建SQL查询以检索Doctrine的数据的方法: DQL查询和SQL查询之间的区别如下所示: $dqlQuery = "SELECT p FROM...您也可以文档阅读有关DQL哪些方法安全的更多信息:https : //www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference

4K41

CentOS 7上安装MongoDB

添加MongoDBMongoDB的最新稳定版本是3.2,撰写本文时,CentOS 7源默认不包含MongoDB的数据源。所以,我们需要自己添加MongoDB源。...如果没有身份验证,可以访问MongoDB shell,但不允许连接到数据库。 这里的mongo-admin步骤3创建的用户只是基于指定的角色进行管理。...每个操作的输出将显示成功写入当前使用的数据库的对象数: WriteResult({ "nInserted" : 1 }) 6.确认exampleCollection已正确创建集合: show collections 输出将列出包含当前工作数据库数据的所有集合...额外的MongoDB功能 如上所述,MongoDB有一组可用的特定于语言的驱动程序,可用于非JavaScript应用程序与你的数据库进行交互。...这些驱动程序提供的一个优点是能够允许使用不同语言编写的应用程序使用相同的数据库,而不需要对象数据映射器(ODM)。但是,如果你确实想使用对象数据映射器,则可以使用许多支持良好的ODM

14.3K61

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(二)

迷你全栈电商应用实战系列的第二篇教程,我们将通过基于 Node.js 平台的 Express[1] 框架实现后端 API 数据接口,并且将数据存储 MongoDB[2] 。...4.第四部分(✍写作):用 Element UI 组件库界面更加专业美观,并且用 Docker 和 Docker Compose 部署我们的全栈项目。...接入 MongoDB 数据库 解决数据持久化存储最流行的方案无疑是数据库,而 MongoDB 凭借其优异的性能、可扩展性和灵活的数据模式,从众多数据库产品脱颖而出。...然后回到我们之前开启的终端,安装 Mongoose 这个 npm 包: $ npm install mongoose Mongoose 是 MongoDB 最流行的 ODM(Object Document...我们还可以看到,我们的 productSchema ,manufacturer 数据结构我们定义了一个 ref 属性,这是 MongoDB 为我们提供的类似关系数据库的外键功能,允许我们创建一对多的数据文档

3K10

ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

通常,我们会将日志信息记录到 txt or log 文件,虽然你可以通过修改日志布局日志信息具有良好的可读性,不过信息多的情况下查阅时还是会显得不太方便。...当然,最主要的原因还是目前在工作中有开始尝试用 MongoDB 存储用户上传的文件,找资料的过程中看到有使用 MongoDB 存储日志的案例,Grapefruit.VuCore 既然作为一个学习项目,... MongoDB 之前的版本,如果我们需要将 MongoDB Server 作为 Windows 服务,需要我们安装完成之后进行配置,但是从 MongoDB 4.0 开始,我们就可以安装期间直接配置和启动我们的...对于这个服务,你同样可以计算机管理对这个服务进行管理。   默认情况下,当我们安装好 MongoDB 后是不允许远程访问以及不存在任何的用户权限的。而这些,我们正式使用中都是需要考虑的。   ...Server 以及 ASP.NET Core 项目中使用 NLog 将日志信息记录到 MongoDB

1.5K10

MongoDB在这里比PostgreSQL慢了7倍

由于之前的Web框架选择的Django,为了能够最小限度地改动代码,并对接上MongoDB上已存在的数据库和数据,一番对比之后(Djongo和MongoEngine),选择了MongoEngine这个对象文档映射...(ODM)模块来替代Django原有的ORM。...在这个页面里面,主要数据操作是从数据库查询出原始数据,然后加载到Pandas的DataFrame,接着Pandas中进行各种数据处理,最后返回JSON数据给前端进行渲染。...对各个环节分别进行测试发现,主要的时间消耗了从数据库读取数据,然后加载到Pandas这个过程。 于是将这个过程专门提取出来,单独测试其消耗的时间。...使用list()对数据查询结果进行处理是将其加载到Pandas的一个常规前置操作,相当于遍历查询集的结果并将每一条数据添加到一个列表

1.6K21

补习系列(17)-springboot mongodb 内嵌数据库

简介 前面的文章,我们介绍了如何在SpringBoot 中使用 MongoDB 的一些常用技巧。 那么,与使用其他数据库如 MySQL 一样,我们应该怎么来做 MongoDB的单元测试呢?...进程; 测试完成后关闭MongoDB进程; 接下来,业务测试类继承于基础类: public class BookServiceTest extends BaseEmbededMongoTest{...最后一步,为了业务代码能连接到自启动的MongoDB,需要做对应的配置: src/test/resources 目录编辑 application-test.properties spring.data.mongodb.host...https://github.com/fakemongo/fongo 小结 随着MongoDB Web开发的应用越来越广,许多配套的框架及工具也逐步完善。...本文介绍了两种SpringBoot 框架上使用内嵌MongoDB的方式,从简易性来看,个人更推荐Fongo的方案。

1.1K20

ASP.NET 6启动时自动创建MongoDB索引

最近,使用MongoDB时,碰到这样的一个需求:针对某个Collection手动开发环境创建了索引,但在测试环境和生产环境不想再手动操作了,于是就想着通过代码的方式ASP.NET 6应用启动时自动创建...MongoDB可以创建的索引类型: 唯一索引 unique:保证数据的唯一不重复 稀疏索引 sparse 复合索引:用于提高查询速度 TTL 索引 : 设置文档的缓存时间,时间到了会自动删除掉...6使用工作单元操作MongoDB》为基础,不熟悉的朋友可以先看看这篇文章。...中使用 这里我们仅仅需要在Program.cs添加以下语句即可实现在ASP.NET 6应用启动时创建MongoDB索引啦: .........小结 本文我们了解了如何在ASP.NET 6应用启动时实现自动创建MongoDB的索引,相信会对你ASP.NET 6使用MongoDB有一定帮助!

21140

腾讯自研交换机标准化之路:S³IP实践

在此背景下,自研交换机标准化工作被提上日程。...这种合作模式理论上可以双方更聚焦于各自擅长的领域,提升开发效率和系统质量。但是由于合作标准规范的缺失,我们项目实际开展过程遇到了诸多困难,而这些困难也是白盒交换机行业共有的痛点。...后来随着白盒规范化需求的增加,COM-Express控制模组逐渐成为了自研产品的首选,但是COM-Express使用也暴露出了一些问题: 1)COM-Express规范面向工控类产品,无法很好的适配白盒交换机系统需求...S³IP项目成立之前,SONiC社区缺少这样的测试验收平台,也缺少测试用例集合。我们需要构建私有的测试验收平台,并积累测试用例,来检测硬件批次问题和硬件单体故障,这个工作对我们有很大的挑战。...这些规范S³IP生态取得了如下成果: 1)  S³IP用户成员,包括中国移动、阿里巴巴、百度、腾讯、美团、快手、京东等,全都采用S³IP sysfs标准,将其作为自研交换机规格说明书的一部分。

1.7K20
领券