Problem/Motivation

400 level errors (outside 403 and 404) are logged as php errors vs client errors

Steps to reproduce

Trigger a badRequestException()
Check the logs and see that the error is logged as php

Proposed resolution

Per #37 and #39 use a generic "http client error" logger channel

Remaining tasks

Review changes
Commit

User interface changes

NA

API changes

NA

Data model changes

NA

Release notes snippet

NA

Original post

https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21EventSubs...

It does log it correctly for 403 and 404 errors but not for other codes. For instance when a user is trying to log in without providing authentication credentials Drupal throws BadRequestHttpException and sends "400 bad request". This should not appear in DB log as PHP error because it isn't related to PHP and even to Drupal itself.

CommentFileSizeAuthor
#75 2828706-75.patch6.82 KBsmustgrave
#75 interdiff-67-75.txt3.72 KBsmustgrave
#67 2828706-67.patch6.65 KBsmustgrave
#67 interdiff-66-67.txt823 bytessmustgrave
#66 2828706-66.patch6.53 KBsmustgrave
#66 interdiff-55-66.txt2.09 KBsmustgrave
#55 2828706-55.patch8.8 KBsmustgrave
#55 interdiff-51-55.txt665 bytessmustgrave
#51 2828706-51.patch8.73 KBsmustgrave
#51 interdiff-48-51.txt2.73 KBsmustgrave
#48 2828706-48.patch7.55 KBsmustgrave
#48 2828706-48-tests-only.patch6.05 KBsmustgrave
#48 interdiff-46-48.txt4.09 KBsmustgrave
#46 2828706-46.patch4.5 KBsmustgrave
#46 interdiff-44-46.txt4.56 KBsmustgrave
#45 2828706-45.patch1.62 KBdagmar
#44 2828706-44.patch7.22 KBsmustgrave
#44 interdiff-41-44.txt832 bytessmustgrave
#43 2828706-42.patch7.34 KBAnchal_gupta
#41 2828706-41.patch7.34 KBsmustgrave
#41 interdiff-36-41.txt600 bytessmustgrave
#36 2828706-36.patch7.32 KBsmustgrave
#36 interdiff-34-36.txt1.57 KBsmustgrave
#34 2828706-34.patch7.08 KBsmustgrave
#34 interdiff-32-34.txt603 bytessmustgrave
#32 2828706-32.patch7.12 KBsmustgrave
#32 interdiff-29-32.txt2.08 KBsmustgrave
#29 2828706-29.patch6.14 KBsmustgrave
#21 http_error_log_channels-2828706-20.patch6.06 KBChi
#18 http_error_log_channels-2828706-18.patch6.01 KBChi
#11 interdiff-6-10.txt1.81 KBChi
#10 interdiff-6-10.txt0 bytesChi
#10 http_error_log_channels-2828706-10.patch3.91 KBChi
#6 interdiff-4-6.txt812 bytesChi
#6 http_error_log_channels-2828706-6.patch4.42 KBChi
#4 interdiff-3-4.txt1.12 KBChi
#4 http_error_log_channels-2828706-4.patch4.44 KBChi
#3 http_error_log_channels-2828706-3.patch4.12 KBChi

Issue fork drupal-2828706

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Chi created an issue. See original summary.

dawehner’s picture

Good catch, 4XX errors are client side errors!

Chi’s picture

Title: ExceptionLoggingSubscriber should not log HTTP 40x errors using PHP logger channel » ExceptionLoggingSubscriber should not log HTTP 4XX errors using PHP logger channel
Status: Active » Needs review
FileSize
4.12 KB

There is plenty of HTTP client errors. So I decided to handle the exception without creating a dedicated callback for each HTTP code.

Not sure if changing logger channel name is BC break.

Chi’s picture

Removed unnecessary condition.

Status: Needs review » Needs work

The last submitted patch, 4: http_error_log_channels-2828706-4.patch, failed testing.

Chi’s picture

Status: Needs work » Needs review
FileSize
4.42 KB
812 bytes

I don't know a use case for throwing HttpException with code less than 400 however RedirectOnExceptionTest does it. So I removed minimal status code condition. See interdiff-4-6.txt file.

dawehner’s picture

@Chi
Do you mind explaining why its not enough to just change the logger channel on the on404 and on403 pages and be done with it? It is not entirely obvious, at least for me, why some of the code needs to be rewritten. I guess there are totally good reasons for that.

Chi’s picture

@dawehner the logger channels for 403 and 404 pages are correct without this patch. The issue is about all other 4XX pages (400, 401, etc.).

dawehner’s picture

+++ b/core/modules/dblog/dblog.routing.yml
@@ -27,7 +27,7 @@ dblog.page_not_found:
-    type: 'page not found'
+    type: 'not found'
   requirements:

@@ -36,7 +36,7 @@ dblog.access_denied:
-    type: 'access denied'
+    type: 'forbidden'

I think changing these logger channels is a problem. I could imagine existing tools filter messages by these strings.

Chi’s picture

Chi’s picture

FileSize
1.81 KB
dawehner’s picture

Thank you @Chi, I hope this makes sense for you as well.

Do you think we could get some test coverage to prove that we now log more than just the 403/404 errors?

Status: Needs review » Needs work

The last submitted patch, 10: http_error_log_channels-2828706-10.patch, failed testing.

Chi’s picture

@dawehner is it possible to get last logged entries in a Kernel test? I've tried to fetch them from watchdog table but failed.


/**
 * Tests that HTTP exceptions are logged correctly.
 *
 * @group system
 */
class ExceptionLoggingSubscriberTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  public static $modules = ['system', 'test_page_test', 'dblog'];

  /**
   * Tests \Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber::onException().
   */
  function testExceptionLogging() {
    $http_kernel = \Drupal::service('http_kernel');

    $this->installSchema('dblog', ['watchdog']);

    $request = Request::create('/admin');
    $http_kernel->handle($request);

    $connection = $this->container->get('database');
    $records = $connection->query('SELECT * FROM watchdog')->fetchAll();
    print_r($records);
  }

}

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

dagmar’s picture

is it possible to get last logged entries in a Kernel test? I've tried to fetch them from watchdog table but failed.

The problem is you are not using {watchdog} and therefore you are querying the watchdog table from your current site and not the created by phpunit.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Chi’s picture

Status: Needs work » Needs review
FileSize
6.01 KB

The problem is you are not using {watchdog}

Exactly. Here is a patch with a test that uses watchdog table to verify logged exceptions. I also changed log message to more meaningful message from an exception.

Status: Needs review » Needs work

The last submitted patch, 18: http_error_log_channels-2828706-18.patch, failed testing. View results

Chi’s picture

Status: Needs work » Needs review

I also changed log message to more meaningful message from an exception.

Had to revert this change since the message is used in "Top 'access denied' errors" report.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Version: 9.4.x-dev » 9.5.x-dev
Issue tags: +Bug Smash Initiative
FileSize
6.14 KB

This came up as a daily bugsmash target.

Rerolled #21 but changing the todo for Drupal 10.2.0

Status: Needs review » Needs work

The last submitted patch, 29: 2828706-29.patch, failed testing. View results

mfb’s picture

@smustgrave changing the logger channel seems like a breaking change that should be delayed to 11.0.0

smustgrave’s picture

Status: Needs work » Needs review
FileSize
2.08 KB
7.12 KB

Changed to 11.0.0 and fixed the failing db log test.

Status: Needs review » Needs work

The last submitted patch, 32: 2828706-32.patch, failed testing. View results

smustgrave’s picture

Status: Needs work » Needs review
FileSize
603 bytes
7.08 KB

Updated test case.

dagmar’s picture

Status: Needs review » Needs work
+        $channel = strtolower($status_texts[$status_code]);

This can trigger a warning if the $status_code is not in the list of status_texts. We don't know if some client/server/app can use a custom error code that we are not aware of... Not sure if we should log this at all, or just ignore it...

+        $status_texts = Response::$statusTexts;
+
+        // BC layer to preserve existing logger channels.
+        // @TODO Remove this in Drupal 11.0.0.
+        $status_texts[403] = 'access denied';
+        $status_texts[404] = 'page not found';
+
+        $channel = strtolower($status_texts[$status_code]);

Maybe we can avoid copying the statusText into a new array. What about checking $status_text = Response::$statusTexts[$status_code] ?? NULL;

And then use 2 ifs to override 'access denied' and 'page not' found texts.

+        // @TODO Remove this in Drupal 11.0.0.
+        $status_texts[403] = 'access denied';
+        $status_texts[404] = 'page not found';

I think it should be

 // @todo Remove the BC layer in Drupal 11.
 // @see https://www.drupal.org/project/drupal/issues/2828706
+        $uri = $event->getRequest()->getRequestUri();
+        $this->logger->get($channel)->warning('@uri', ['@uri' => $uri]);

No need to create a temp variable:

$this->logger->get($channel)->warning('@uri', ['@uri' => $event->getRequest()->getRequestUri()]);

smustgrave’s picture

Status: Needs work » Needs review
FileSize
1.57 KB
7.32 KB

Something like that?

longwave’s picture

Do we really need separate logger channels, or should we just have a shared "http" logger channel for the 4xx errors that aren't 403/404? They don't seem common enough to warrant their own.

smustgrave’s picture

That I don't know I can answer. But I do like the idea of 403s not logging as a php exception but that's may just be me.

mfb’s picture

Adding a generic "http client error" logger channel seems sufficient to me, and the specific status code could be added to the context array.

Status: Needs review » Needs work

The last submitted patch, 36: 2828706-36.patch, failed testing. View results

smustgrave’s picture

Status: Needs work » Needs review
FileSize
600 bytes
7.34 KB

Fixed the test case. Not sure best practice for dealing with subdirectory running on d.o but add a string replace for now.

Status: Needs review » Needs work

The last submitted patch, 41: 2828706-41.patch, failed testing. View results

Anchal_gupta’s picture

Fix Unit Fail

smustgrave’s picture

Status: Needs work » Needs review
FileSize
832 bytes
7.22 KB

Thank you Anchal_gupta for the patch but please include an interdiff so we can see what has changed.

From what I can tell patch #43 is the same as #41 so remove credit for that.

Updated the tests to remove the status codes that weren't being checked by the code change.

dagmar’s picture

Status: Needs review » Needs work
FileSize
1.62 KB

I think we want to go with the approach provided in #37 and #39. Something like this perhaps? (Beware untested code, just sharing the approach mentioned in #37 and #39 so others can continue this as part of the Bug Smash Initiative.

smustgrave’s picture

Status: Needs work » Needs review
Issue tags: +Needs issue summary update
FileSize
4.56 KB
4.5 KB

Added what was provided in #45 lets see what happens.

Also added IS update just to make sure we have an agreed upon approach.

Status: Needs review » Needs work

The last submitted patch, 46: 2828706-46.patch, failed testing. View results

smustgrave’s picture

Version: 9.5.x-dev » 10.1.x-dev
Status: Needs work » Needs review
FileSize
4.09 KB
6.05 KB
7.55 KB

What about this?

Status: Needs review » Needs work

The last submitted patch, 48: 2828706-48.patch, failed testing. View results

smustgrave’s picture

Not sure about the error in testUncaughtFatalError will have to investigate later.

smustgrave’s picture

Issue summary: View changes
Status: Needs work » Needs review
Issue tags: -Needs issue summary update
FileSize
2.73 KB
8.73 KB
mfb’s picture

This is looking good to me. The one thing I might suggest (as I mentioned in #39) would be to add status_code to the context array. My philosophy is the more context/metadata/etc. provided to loggers, the better. But in general drupal core doesn't go out of its way to add helpful context (aside from log message placeholders) so that's just my humble opinion.

smustgrave’s picture

Not sure I follow?

dagmar’s picture

@smustgrave I think what @mfb is trying to say is, send the 4xx code as part of the $context array. Because it is hidden behind the generic client error.

smustgrave’s picture

Like this?

bradjones1’s picture

Yes I think that's the jist of the suggestion.

quietone credited Berdir.

quietone credited Primsi.

quietone credited slip.

quietone’s picture

i closed #3039266: Generic logging for 4xx errors as a duplicate, moving credit.

catch’s picture

  1. 
    +++ b/core/modules/dblog/tests/src/Functional/DbLogTest.php
    +++ b/core/modules/dblog/tests/src/Functional/DbLogTest.php
    @@ -183,6 +183,41 @@ public function test403LogEventPage() {
    
    @@ -183,6 +183,41 @@ public function test403LogEventPage() {
         $this->assertMatchesRegularExpression($regex, $message[0]->getText());
       }
     
    +  /**
    +   * Tests that 4xx errors, outside 403 and 404, are logged with the exception.
    +   */
    +  public function testClientErrors() {
    +    // Trigger BadRequestException.
    

    I'm not sure we need this if we have the Kernel test - depending on the answer to the question about the kernel test.

  2. +++ b/core/tests/Drupal/KernelTests/Core/EventSubscriber/ExceptionLoggingSubscriberTest.php
    @@ -0,0 +1,57 @@
    +
    +    $channel_map = [
    +      403 => 'access denied',
    +      404 => 'page not found',
    +      // Do not check the 500 status code here because it would be caught by
    +      // Drupal\Core\EventSubscriberExceptionTestSiteSubscriber which has lower
    +      // priority.
    +      501 => 'php',
    +      502 => 'php',
    +      503 => 'php',
    +    ];
    

    This isn't testing the non-403/404 4xx errors that this issue is about, should it be?

smustgrave’s picture

FileSize
2.09 KB
6.53 KB

Removed functional test

smustgrave’s picture

FileSize
823 bytes
6.65 KB
catch’s picture

Status: Needs review » Reviewed & tested by the community

#67 looks good.

larowlan’s picture

Status: Reviewed & tested by the community » Needs work
  1. +++ b/core/lib/Drupal/Core/EventSubscriber/ExceptionLoggingSubscriber.php
    @@ -88,10 +104,16 @@ public function onException(ExceptionEvent $event) {
    +      else {
    +        if ($status_code >= 400 && $status_code < 500) {
    +          $method = 'onClientError';
    +        }
    

    shouldn't this be elseif? as much as I hate elseif, its odd to see an if inside an else

  2. +++ b/core/modules/system/tests/modules/error_test/error_test.routing.yml
    @@ -40,3 +40,10 @@ error_test.trigger_renderer_exception:
    +error_test.trigger_bad_request_exception:
    +  path: '/error-test/trigger-bad_request-exception'
    +  defaults:
    +    _controller: '\Drupal\error_test\Controller\ErrorTestController::triggerBadRequestException'
    +  requirements:
    +    _access: 'TRUE'
    
    +++ b/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php
    @@ -5,6 +5,7 @@
    +use Symfony\Component\HttpFoundation\Exception\BadRequestException;
    
    @@ -98,4 +99,12 @@ function () {
    +  /**
    +   * Trigger a bad request exception.
    +   */
    +  public function triggerBadRequestException() {
    +    define('SIMPLETEST_COLLECT_ERRORS', FALSE);
    +    throw new BadRequestException();
    +  }
    

    is this used? the test seems to be hitting an existing route

  3. +++ b/core/tests/Drupal/KernelTests/Core/EventSubscriber/ExceptionLoggingSubscriberTest.php
    @@ -0,0 +1,61 @@
    +    // Make sure that HTTP exceptions are logged into correct channel.
    +    $this->installSchema('dblog', ['watchdog']);
    

    Let's not use the database to collect the log messages, we can just make the kernel test a logger 💪

    See https://www.previousnext.com.au/blog/making-your-drupal-8-kernel-tests-f... for an example

larowlan’s picture

sourabhjain’s picture

Assigned: Unassigned » sourabhjain

Let me work on #69

sourabhjain’s picture

Assigned: sourabhjain » Unassigned

Resolved the 1st issue from #69 and created PR.

larowlan’s picture

What about #2 and #3 @sourabhjain?

Going to cancel the test run, its a waste of DA resources without addressing the feedback.

smustgrave’s picture

Status: Needs work » Needs review
FileSize
3.72 KB
6.82 KB

Attempted to address all points.

Chi’s picture

+ 502 => 'php',

I know this issue is specifically about 4xx errors, but i'd like to point that 5xx errors shouldn't be always logged in PHP channel. For example I have a project where Drupal serves as a gateway to another site. So when the upstream site fails Drupal returns 502 exception. That's part of normal workflow and has nothing to do with PHP.

I think PHP channel should only be used for exceptions that got 500 status code in FinalExceptionSubscriber. That might need a separate issue.

FeyP’s picture

Status: Needs review » Needs work
Issue tags: +Needs Review Queue Initiative, +Needs followup

This issue is being reviewed by the kind folks in Slack, #need-reveiw-queue. We are working to keep the size of Needs Review queue [2700+ issues] to around 400 (1 month or less), following Review a patch or merge request as a guide.

Thanks for working on this, found some more stuff to remove from the test ;).

  1. diff --git a/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php b/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php
    index b15bb9b00c..b550b4fda4 100644
    --- a/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php
    +++ b/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php
    @@ -5,6 +5,7 @@
     use Drupal\Core\Controller\ControllerBase;
     use Drupal\Core\Database\Connection;
     use Symfony\Component\DependencyInjection\ContainerInterface;
    +use Symfony\Component\HttpFoundation\Exception\BadRequestException;
     
     /**
      * Controller routines for error_test routes.
    @@ -98,4 +99,12 @@ function () {
         ];
       }
     
    +  /**
    +   * Trigger a bad request exception.
    +   */
    +  public function triggerBadRequestException() {
    +    define('SIMPLETEST_COLLECT_ERRORS', FALSE);
    +    throw new BadRequestException();
    +  }
    +
     }
    

    To address #69.2 the latest patch removed the route that wasn't used, but I think this needs to be removed as well. Without the route this is now dead code.

  2. diff --git a/core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php b/core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php
    index c85cc3c6e1..969c364890 100644
    --- a/core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php
    +++ b/core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php
    @@ -94,7 +94,7 @@ public function testUncaughtException() {
       public function testUncaughtFatalError() {
         $fatal_error = [
           '%type' => 'TypeError',
    -      '@message' => 'Drupal\error_test\Controller\ErrorTestController::Drupal\error_test\Controller\{closure}(): Argument #1 ($test) must be of type array, string given, called in ' . \Drupal::root() . '/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php on line 65',
    +      '@message' => 'Drupal\error_test\Controller\ErrorTestController::Drupal\error_test\Controller\{closure}(): Argument #1 ($test) must be of type array, string given, called in ' . \Drupal::root() . '/core/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php on line 66',
           '%function' => 'Drupal\error_test\Controller\ErrorTestController->Drupal\error_test\Controller\{closure}()',
         ];
         $this->drupalGet('error-test/generate-fatals');
    

    Since we don't use the error_test module in the test at all and we thus don't need to make any modifications to that module anymore, this can most likely also be reverted.

  3. +  /**
    +   * {@inheritdoc}
    +   */
    +  protected function setUp(): void {
    +    parent::setUp();
    +    // Prepare the logger for collecting the expected critical error.
    +    $this->container->get($this->testLogServiceName)->cleanLogs();
    +  }
    

    Further down in the test method, we're already calling $this->assertEmpty($this->container->get($this->testLogServiceName)->cleanLogs()); before we start triggering errors. I don't think we need to call this twice. I think asserting that the logger is empty in the test is a good idea, so we should probably just remove the setup method.

  4. +  protected static $modules = ['system', 'test_page_test', 'dblog'];
    

    and

    +    // Make sure that HTTP exceptions are logged into correct channel.
    +    $this->installSchema('dblog', ['watchdog']);
    

    Given that we now use a test logger, I don't think we need need dblog anymore, do we?

Tagging "Needs followup" for #76.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

saidatom made their first commit to this issue’s fork.

saidatom’s picture

Status: Needs work » Needs review

Resolve remarks from #77

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: -Needs followup
Related issues: +#3392245: ExceptionLoggingSubscriber should not log HTTP 5XX errors using PHP logger channel
catch’s picture

Version: 11.x-dev » 10.1.x-dev
Status: Reviewed & tested by the community » Fixed

Committed/pushed to 11.x, cherry-picked to 10.2.x and 10.1.x, thanks!

  • catch committed 62a176da on 10.1.x
    Issue #2828706 by smustgrave, Chi, saidatom, dagmar, dawehner, mfb,...

  • catch committed c3782642 on 10.2.x
    Issue #2828706 by smustgrave, Chi, saidatom, dagmar, dawehner, mfb,...

  • catch committed 528a2e38 on 11.x
    Issue #2828706 by smustgrave, Chi, saidatom, dagmar, dawehner, mfb,...
catch’s picture

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.