{"id":17395,"date":"2025-08-13T17:29:06","date_gmt":"2025-08-13T11:44:06","guid":{"rendered":"https:\/\/www.bay20.com\/de\/?p=17395"},"modified":"2025-09-24T11:23:42","modified_gmt":"2025-09-24T05:38:42","slug":"wie-erstellt-man-einen-benutzerdefinierten-plugin-logger-fuer-shopware-6","status":"publish","type":"post","link":"https:\/\/www.bay20.com\/de\/wie-erstellt-man-einen-benutzerdefinierten-plugin-logger-fuer-shopware-6\/","title":{"rendered":"Wie erstellt man einen benutzerdefinierten Plugin-Logger f\u00fcr Shopware 6?"},"content":{"rendered":"\n<p>In Shopware 6 gibt es einen Plugin-Logger, mit dem Ihr Plugin Logs in eine eigene Logdatei ausgeben kann, die von den Standard-Logs von Shopware getrennt ist. Dies kann f\u00fcr die Fehlersuche, die \u00dcberpr\u00fcfung von Plugin-spezifischen Aktivit\u00e4ten oder die Organisation von Logs n\u00fctzlich sein.<\/p>\n\n\n\n<p>Hier erfahren Sie, wie Sie einen benutzerdefinierten Logger verwenden, der in eine spezielle Datei protokolliert. Jede Logdatei h\u00e4ngt die Umgebung und das Datum an, die beide in der Datei .env festgelegt sind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 1: Registrieren Sie die integrierte LoggerFactory-Klasse.<\/h3>\n\n\n\n<p>F\u00fcgen Sie das neue Element in Ihres benutzerdefinierten Plugins hinzu, das sich in<\/p>\n\n\n\n<p>Add the new &lt;service&gt; element in &lt;services&gt; of your custom plugin that is located in <br><code>ExamplePlugin\/src\/Resources\/config\/services.xml<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;service id=\"company.plugin.logger\" class=\"Monolog\\Logger\"&gt;\n   &lt;argument type=\"string\"&gt;Company_PluginName&lt;\/argument&gt;\n   &lt;argument type=\"collection\"&gt;\n       &lt;argument type=\"service\" id=\"company.plugin.rotatingHandler\"\/&gt;\n   &lt;\/argument&gt;\n&lt;\/service&gt;\n&lt;service id=\"company.plugin.rotatingHandler\" class=\"Monolog\\Handler\\RotatingFileHandler\"&gt;\n     &lt;argument type=\"string\"&gt;%kernel.logs_dir%\/company-name-%kernel.environment%.log&lt;\/argument&gt;\n&lt;\/service&gt;\n\nLassen Sie uns \u00fcber die Klasse, die ID und das Argument sprechen, die im Service-Element definiert sind.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Class:<\/strong> Die Klasse ist die eigentliche PHP-Klasse, die der Dependency-Injection-Container von Symfony f\u00fcr diesen Dienst instanziiert.<\/li><li>I<strong>D:<\/strong> &#8222;company.plugin.logger\u201d ist eine variable Kennung. Diese Kennung wird f\u00fcr die Dependency Injection in Ihrem Dienst verwendet.<\/li><li><strong>Argument:<\/strong> Es enth\u00e4lt den Dateinamen als Zeichenfolge, der als Pr\u00e4fix f\u00fcr die Protokollierung verwendet wird.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 2: F\u00fcgen Sie den Logger-Dienst in Ihre Klasse ein.<\/h3>\n\n\n\n<p>Um dies in Ihrer benutzerdefinierten Klasse(class), z. B. CartValidator, zu verwenden und Debugging-Daten zu protokollieren, m\u00fcssen Sie den Logger-Dienst anhand seiner ID einbinden. Ich habe hier die Logger-Dienst-ID company.plugin.logger verwendet, die ich bereits deklariert habe.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;service id=\"StockBlocker\\Core\\Checkout\\Cart\\Custom\\CustomCartValidator\"&gt;\n     &lt;tag name=\"shopware.cart.validator\"\/&gt;\n     &lt;argument type=\"service\" id=\"company.plugin.logger\"\/&gt;\n&lt;\/service&gt;\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 3: Verwendung des Loggers in einer benutzerdefinierten Klasse.<\/h3>\n\n\n\n<p>Sie haben den Logger-Dienst als erstes Argument an den Konstruktor Ihrer Klasse \u00fcbergeben. Sie m\u00fcssen ihn in Ihrem Konstruktor als Argument vom Typ LoggerInterface definieren.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\ndeclare(strict_types=1);\nnamespace StockBlocker\\Core\\Checkout\\Cart\\Custom;\nuse Shopware\\Core\\Checkout\\Cart\\CartValidatorInterface;\nuse Psr\\Log\\LoggerInterface;\n\nclass CustomCartValidator implements CartValidatorInterface\n{\n  private LoggerInterface $logger;\n  public function __construct(LoggerInterface $logger)\n  {\n    $this-&gt;logger = $logger;\n  }\n  public function validate(): void\n  {\n\n    $this-&gt;logger-&gt;info('Custom Cart Validator');\n  }\n}\n\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"93\" src=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2025\/08\/Verwendung-des-Loggers-in-einer-benutzerdefinierten-Klasse.png\" alt=\"\" class=\"wp-image-17400\" srcset=\"https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2025\/08\/Verwendung-des-Loggers-in-einer-benutzerdefinierten-Klasse.png 774w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2025\/08\/Verwendung-des-Loggers-in-einer-benutzerdefinierten-Klasse-300x36.png 300w, https:\/\/www.bay20.com\/de\/wp-content\/uploads\/2025\/08\/Verwendung-des-Loggers-in-einer-benutzerdefinierten-Klasse-768x92.png 768w\" sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><\/figure>\n\n\n\n<p>Die Protokolldatei wird im Verzeichnis \u201evar\/log\u201c gespeichert. Sie k\u00f6nnen die Protokolle in dieser Datei einsehen.<\/p>\n\n\n\n<p><strong>Bitte kontaktieren Sie uns unter&nbsp;<a href=\"mailto:manish@bay20.com\" target=\"_blank\" rel=\"noreferrer noopener\">manish@bay20.com<\/a>&nbsp;oder rufen Sie uns unter&nbsp;<a href=\"https:\/\/api.whatsapp.com\/send?phone=+918800519180&amp;text=Hi,%20I%20contacted%20you%20through%20your%20website.\" target=\"_blank\" rel=\"noreferrer noopener\">+91-8800519180<\/a>&nbsp;\/&nbsp;<a href=\"https:\/\/api.whatsapp.com\/send?phone=919582784309\" target=\"_blank\" rel=\"noreferrer noopener\">+91-9582784309<\/a>&nbsp;an, wenn Sie Unterst\u00fctzung im Zusammenhang mit Shopware ben\u00f6tigen. Sie k\u00f6nnen auch die&nbsp;<a href=\"https:\/\/www.bay20.com\/de\/shopware-entwicklungsunternehmen\/\">Shopware-Entwicklungsseite<\/a>&nbsp;besuchen, um die von uns angebotenen Dienstleistungen zu \u00fcberpr\u00fcfen.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Shopware 6 gibt es einen Plugin-Logger, mit dem Ihr Plugin Logs in eine eigene Logdatei ausgeben kann, die von den Standard-Logs von Shopware getrennt ist. Dies kann f\u00fcr die Fehlersuche, die \u00dcberpr\u00fcfung von Plugin-spezifischen Aktivit\u00e4ten oder die Organisation von Logs n\u00fctzlich sein. Hier erfahren Sie, wie Sie einen benutzerdefinierten Logger verwenden, der in eine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17401,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,115],"tags":[],"class_list":["post-17395","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecommerce","category-shopware-6"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/17395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/comments?post=17395"}],"version-history":[{"count":5,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/17395\/revisions"}],"predecessor-version":[{"id":17411,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/posts\/17395\/revisions\/17411"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media\/17401"}],"wp:attachment":[{"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/media?parent=17395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/categories?post=17395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bay20.com\/de\/wp-json\/wp\/v2\/tags?post=17395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}