{"id":1321,"date":"2016-03-23T17:46:22","date_gmt":"2016-03-23T15:46:22","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=1321"},"modified":"2016-03-23T17:46:22","modified_gmt":"2016-03-23T15:46:22","slug":"prestashop-mise-en-place-de-logs-rapides-dans-un-fichier","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2016\/03\/23\/prestashop-mise-en-place-de-logs-rapides-dans-un-fichier\/","title":{"rendered":"Prestashop : Mise en place de logs rapides dans un fichier"},"content":{"rendered":"<p>Voici un code qui vous permettra de logguer facilement et rapidement les informations souhait\u00e9es sous Prestashop dans le fichier de votre choix.<\/p>\n<p>L&rsquo;objectif est de pouvoir logguer les informations souhait\u00e9es en une seule ligne, sans avoir \u00e0 instancier de classe de log.<br \/>\n(Le fonctionnement est comparable \u00e0 la fonction Mage::log() de Magento )<\/p>\n<p>Cr\u00e9er une nouvelle classe dans le dossier override\/classes\/CustomLogger.php<\/p>\n<pre lang=\"php\" escaped=\"true\"> &lt;?php\r\nclass CustomLogger\r\n{\r\n\r\n\u00a0\u00a0\u00a0 \/** Fichier de log par d\u00e9faut *\/\r\n\u00a0\u00a0\u00a0 const DEFAULT_LOG_FILE = 'system.log';\r\n\r\n\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0 * Log\r\n\u00a0\u00a0\u00a0\u00a0 * @param string|array|object $message element \u00e0 logger ( 1 type \u00e0 la fois )\r\n\u00a0\u00a0\u00a0\u00a0 * @param string $level niveau de log\r\n\u00a0\u00a0\u00a0\u00a0 * @param string $fileName nom du fichier de log\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 public static function log($message, $level = 'debug', $fileName = null)\r\n\u00a0\u00a0\u00a0 {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $fileDir = _PS_ROOT_DIR_ . '\/log\/';\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (!$fileName)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $fileName = self::DEFAULT_LOG_FILE;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (is_array($message) || is_object($message)) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $message = print_r($message, true);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $formatted_message = '*' . $level . '* ' . \" -- \" . date('Y\/m\/d - H:i:s') . ': ' . $message . \"\\r\\n\";\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return file_put_contents($fileDir . $fileName, $formatted_message, FILE_APPEND);\r\n\u00a0\u00a0\u00a0 }\r\n\r\n}\r\n<\/pre>\n<p>Vous pouvez ensuite logguer les informations souhait\u00e9es \u00e0 n&rsquo;importe quel endroit dans les fichiers php de Prestashop via la commande suivante<\/p>\n<pre lang=\"php\" escaped=\"true\">\/\/Log dans le fichier log\/system.log, niveau debug\r\nCustomLogger::log('Mon message de log');\r\n\/\/Log dans le fichier log\/system.log, niveau warning\r\nCustomLogger::log('Mon message de log','warning');\r\n\/\/Log dans le fichier log\/myfile.log, niveau warning\r\nCustomLogger::log('Mon message de log','warning','myfile.log');\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Voici un code qui vous permettra de logguer facilement et rapidement les informations souhait\u00e9es sous Prestashop dans le fichier de votre choix. L&rsquo;objectif est de pouvoir logguer les informations souhait\u00e9es en une seule ligne, sans avoir \u00e0 instancier de classe de log. (Le fonctionnement est comparable \u00e0 la fonction Mage::log() de Magento ) Cr\u00e9er une [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[245],"tags":[427,104],"class_list":["post-1321","post","type-post","status-publish","format-standard","hentry","category-prestashop-2","tag-log","tag-prestashop"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=1321"}],"version-history":[{"count":1,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1321\/revisions"}],"predecessor-version":[{"id":1322,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1321\/revisions\/1322"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=1321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=1321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=1321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}