2015-04-06 38 views
2

我是Symfony2的新手,我正在尋找一種方法將SQL查詢(包括計時)記錄到與我的應用程序的其他部分相同的日誌文件中。如何獲得Doctrine在Symfony2中記錄查詢

從我可以從文檔中確定這應該都是開箱即用,但經過幾個小時的嘗試後,我無法弄清楚我做錯了什麼。

config_dev.yml

monolog: 
    handlers: 
     doctrine: 
      action_level: debug 
      type: stream 
      path: %kernel.logs_dir%/%kernel.environment%_doctrine.log 
      channels: doctrine 

config.yml

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     logging: true 
     profiling: true 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 

我會在所有生成的日誌文件。我的其他日誌處理程序正常工作(這裏沒有列出)。

我想知道我已經錯了這裏,也不管這是真是正確的方法,或者我應該實現一個新的類,它實現SQL記錄儀,這裏提到:http://vvv.tobiassjosten.net/symfony/logging-doctrine-queries-in-symfony2/

但我我不知道如何通過配置/服務來插入它,以便在項目範圍內應用(例如,我不想在每個控制器中調用它)。

非常感謝您的幫助!

+0

在開發中,這是自動symfony中完成的發現。在生產中,這是不推薦的,因爲這是一個緩慢的過程。 – Stev 2015-04-06 13:29:32

+0

@Stev - 當你說「慢」時,你有什麼樣的指標來支持它?我認爲記錄數據庫查詢對於分析性能低下的站點和繁重的數據庫負載是絕對必要的,而且我聽到這很多關於日誌記錄緩慢的說法。我的假設是我們在這裏談論的是微秒,而不是毫秒或幾十毫秒? – 2015-04-06 15:24:49

+0

我個人沒有指標,但是文件寫入被認爲是一個緩慢的操作。隨着文件大小的增加,文件大小會變慢,即使您使用循環系統(例如操作系統日誌記錄)來構建,您仍然會影響應用性能。 根據我的經驗,我選擇使用像http://newrelic.com/這樣的工具來監控緩慢的查詢。 還有一個MySQL配置(但我確定有一個適用於任何數據庫引擎的配置)來記錄緩慢的查詢(並且您可以選擇對您來說很慢的方式,比如> 50ms很慢)https://dev.mysql。 com/doc/refman/5.1/en/slow-query-log.html – Stev 2015-04-06 19:22:11

回答

7

如果您確實需要在生產環境中記錄doctrine 2查詢,那麼您可以在配置文件中設置它。

connections: 
     # A collection of different named connections (e.g. default, conn2, etc) 
     default: 
       # when true, queries are logged to a "doctrine" monolog channel 
      logging: true 

http://symfony.com/doc/current/reference/configuration/doctrine.html

和配置獨白登錄學說像在文檔中解釋說: http://symfony.com/doc/current/cookbook/logging/channels_handlers.html

類似的問題可以在symfony 2.4 can't get the doctrine channel in prod environment

+0

太棒了 - 謝謝。我完全錯過了爲什麼這不起作用(基本上在另一個配置文件中有一個覆蓋),但這絕對是正確的答案。 – 2015-04-06 15:23:00

相關問題