How to parse _jsonparsefailure from Laravel with backslashes

Could anyone help me with the reason why logstash doesn't parse Laraver logs, please? Where is the core problem?

Interesting that access logs and some errors log are parsed well. I can't understand why Laravel access logs are parsed normally, also.

My logstash.conf

input {
        gelf {
        port => "${X_PORT}"
        type => gelf
   }
}

# Laravel errors are being delivered with the backslashes that cannot be processed by Logstash, therefore, they should be removed/replaced
filter {
  if "_jsonparsefailure" in [tags] {
    mutate {
      gsub => ["message", "[\\]", "/"]
    }
    mutate {
      add_field => { "[@metadata][X_STAGE]" => "${X_STAGE}" }
      add_field => { "[@metadata][X_PROD]" => "${X_PROD}" }
    }
    dissect {
      mapping => {
        "message" => "%{error}"
      }
    }

        if [source_host] == [@metadata][X_STAGE] {
          mutate { add_field => { "[@metadata][target_index]" => "laravel-x-stage" } }
        }
        else if [source_host] == [@metadata][X_PROD] {
          mutate { add_field => { "[@metadata][target_index]" => "laravel-x-prod" } }
        }
  }
}

# All logs from Laravel come with the tag "logstash-%{[tag]}", therefore, it is needed to filter them according to the source received
filter {
  if [type] == "Laravel" {

    mutate {
       add_field => { "[@metadata][X_STAGE]" => "${X_STAGE}" }
       add_field => { "[@metadata][X_PROD]" => "${X_PROD}" }
    }
    if [source_host] == [@metadata][X_STAGE] {
      mutate { add_field => { "[@metadata][target_index]" => "laravel-x-stage" } }
    }
    else if [source_host] == [@metadata][X_PROD] {
      mutate { add_field => { "[@metadata][target_index]" => "laravel-x-prod" } }
    }
  }
}

# Filtering of logs received from Nginx
filter {
  if [tag] == "nginx-x-prod" or [tag] == "nginx-x-stage" {
    dissect {
      mapping => {
        "message" => "%{time}; %{client-ip}; %{method}; %{request}; %{request_length}; %{status}; %{bytes_sent}; %{referer}; %{user_agent}.; %{upstream_addr}; %{upstream_status}; %{request_time}"
      }
    }
  }

output {
  if [tag] == "proxy-prod" {
    opensearch {
      hosts => ["${OPENSEARCH_HOST}"]
      ssl => false
      ssl_certificate_verification => false
      user => "${LOGSTASH_USER}"
      password => "${LOGSTASH_PASS}"
      index => "proxy-x-%{+YYYY.MM}"
    }
  }
  else {
    opensearch {
      hosts => ["${OPENSEARCH_HOST}"]
      ssl => false
      ssl_certificate_verification => false
      user => "${LOGSTASH_USER}"
      password => "${LOGSTASH_PASS}"
      index => "%{[@metadata][target_index]}-%{+YYYY.MM}"
    }
    opensearch {
      hosts => ["${OPENSEARCH_HOST}"]
      ssl => false
      ssl_certificate_verification => false
      user => "${LOGSTASH_USER}"
      password => "${LOGSTASH_PASS}"
      index => "%{[tag]}-%{+YYYY.MM}"
    }
  }
}

But, I still see this:

I tried to use JSON filter, but it's still not working :frowning:

filter {
  if "_jsonparsefailure" in [tags] {
#    mutate {
#       gsub => ["message", "[\\]", "/"]
#    }
    json { source => "message" remove_field => [ "message" ] target => "[someField]" }
    json { source => "[someField][0][log]" target => "[someField][0][stuff]" }
    mutate {
      add_field => { "[@metadata][X_STAGE]" => "${X_STAGE}" }
      add_field => { "[@metadata][X_PROD]" => "${X_PROD}" }
    }
#    dissect {
#      mapping => {
#        "message" => "%{error}"
#      }
#    }

        if [source_host] == [@metadata][X_STAGE] {
          mutate { add_field => { "[@metadata][target_index]" => "laravel-x-stage" } }
        }
        else if [source_host] == [@metadata][X_PROD] {
          mutate { add_field => { "[@metadata][target_index]" => "laravel-x-prod" } }
        }
  }
}

OpenSearch/OpenDistro are AWS run products and differ from the original Elasticsearch and Kibana products that Elastic builds and maintains. You may need to contact them directly for further assistance.

(This is an automated response from your friendly Elastic bot. Please report this post if you have any suggestions or concerns :elasticheart: )

Can you put a textual log sample? Few lines.

Excuse me,
The following logs I get:

{
  "@timestamp": "2022-11-24T16:46:38.838408+02:00",
  "@version": 1,
  "host": "7a17885e9b68",
  "message": "This field is required. (and 2 more errors)",
  "type": "Laravel",
  "channel": "local",
  "level": "ERROR",
  "monolog_level": 400,
  "context": {
    "exception": {
      "code": 0,
      "file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:144",
      "message": "This field is required. (and 2 more errors)",
      "trace": "#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(32): Illuminate\\Foundation\\Http\\FormRequest->failedValidation(Object(Illuminate\\Validation\\Validator))\n#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php(30): Illuminate\\Foundation\\Http\\FormRequest->validateResolved()\n#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1267): Illuminate\\Foundation\\Providers\\FormRequestServiceProvider->Illuminate\\Foundation\\Providers\\{closure}(Object(App\\Http\\Requests\\StoreResumeRequest), Object(Illuminate\\Foundation\\Application))\n#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1232): Illuminate\\Container\\Container->fireCallbackArray(Object(App\\Http\\Requests\\StoreResumeRequest), Array)\n#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1217): Illuminate\\Container\\Container->fireAfterResolvingCallbacks('App\\\\Http\\\\Reques...', Object(App\\Http\\Requests\\StoreResumeRequest))\n#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(776): Illuminate\\Container\\Container->fireResolvingCallbacks('App\\\\Http\\\\Reques...', Object(App\\Http\\Requests\\StoreResumeRequest))\n#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(860): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Reques...', Array, true)\n#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\\Foundation\\Application->resolve('App\\\\Http\\\\Reques...', Array)\n#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(845): Illuminate\\Container\\Container->make('App\\\\Http\\\\Reques...', Array)\n#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(85): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Reques...')\n#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(50): Illuminate\\Routing\\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Object(stdClass))\n#11 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(30): Illuminate\\Routing\\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))\n#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(60): Illuminate\\Routing\\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\\Http\\Controllers\\ResumeController), 'update')\n#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(40): Illuminate\\Routing\\ControllerDispatcher->resolveParameters(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ResumeController), 'update')\n#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ResumeController), 'update')\n#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()\n#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()\n#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))\n#18 /var/www/html/app/Http/Middleware/CheckVarsAmountErrors.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\CheckVarsAmountErrors->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#20 /var/www/html/app/Http/Middleware/VerifyHasEditPermissions.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\VerifyHasEditPermissions->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'edit.cv')\n#22 /var/www/html/app/Http/Middleware/Authenticate.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#24 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#26 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))\n#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#33 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#35 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))\n#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))\n#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))\n#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))\n#40 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))\n#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))\n#42 /var/www/html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#44 /var/www/html/app/Http/Middleware/ClickjackingProtection.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\\Http\\Middleware\\ClickjackingProtection->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#46 /var/www/html/vendor/spatie/laravel-csp/src/AddCspHeaders.php(13): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Spatie\\Csp\\AddCspHeaders->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#48 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#52 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#53 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#54 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#55 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#56 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#57 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))\n#58 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))\n#59 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))\n#60 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))\n#61 /var/www/html/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))\n#62 {main}"
    },
    "user_email": "test@test",
    "user_id": 5796,
    "user_ip": "172.19.0.1"
  }
}

{
  "@timestamp": "2022-11-24T16:47:22.522131+02:00",
  "@version": 1,
  "host": "7a17885e9b68",
  "message": "#4836 was updated.",
  "type": "Laravel",
  "channel": "local",
  "level": "INFO",
  "monolog_level": 200,
  "context": {
    "cv": 4836,
    "user_id": 5796,
    "user_ip": "172.19.0.1"
  }
}

I hope that it helps for us

Can you dump a raw gelf message? Without filter or from log files?
Who provides/generates _jsonparsefailure ?

Yeah, above I sent raw gelf message this log.
The system works as follows :
Laravel forms logs using the default library for logstash logs. After it, these logs have been sent from Laravel docker_container to logstash docker_container.

Probably the following logs may help you?

[2022-11-24 16:40:26] local.ERROR: This field is required. (and 2 more errors) {"exception":{"code":0,"file":"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:144","message":"This field is required. (and 2 more errors)","trace":"#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(32): Illuminate\\Foundation\\Http\\FormRequest->failedValidation(Object(Illuminate\\Validation\\Validator))
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php(30): Illuminate\\Foundation\\Http\\FormRequest->validateResolved()
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1267): Illuminate\\Foundation\\Providers\\FormRequestServiceProvider->Illuminate\\Foundation\\Providers\\{closure}(Object(App\\Http\\Requests\\StoreResumeRequest), Object(Illuminate\\Foundation\\Application))
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1232): Illuminate\\Container\\Container->fireCallbackArray(Object(App\\Http\\Requests\\StoreResumeRequest), Array)
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(1217): Illuminate\\Container\\Container->fireAfterResolvingCallbacks('App\\\\Http\\\\Reques...', Object(App\\Http\\Requests\\StoreResumeRequest))
#5 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(776): Illuminate\\Container\\Container->fireResolvingCallbacks('App\\\\Http\\\\Reques...', Object(App\\Http\\Requests\\StoreResumeRequest))
#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(860): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Reques...', Array, true)
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\\Foundation\\Application->resolve('App\\\\Http\\\\Reques...', Array)
#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(845): Illuminate\\Container\\Container->make('App\\\\Http\\\\Reques...', Array)
#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(85): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Reques...')
#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(50): Illuminate\\Routing\\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Object(stdClass))
#11 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php(30): Illuminate\\Routing\\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))
#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(60): Illuminate\\Routing\\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\\Http\\Controllers\\ResumeController), 'update')
#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(40): Illuminate\\Routing\\ControllerDispatcher->resolveParameters(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ResumeController), 'update')
#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ResumeController), 'update')
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\\Routing\\Route->runController()
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()

I see here a multiline pattern:
[2022-11-24 16:40:26] local.ERROR: This field is required. (and 2 more errors) {"exception":{"code":0,"file":"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php:144","message":"This field is required. (and 2 more

[datetime] loglevel: msg {details ...

Are these fields OK?

so that's what's needed!
Could you help with this, please?
And would you mind if tell me how you were able to see this pattern, please?

If you need any additional info, let me know, please
I investigated regarding multiline pattern, but, unfortunately, couldn't manage to find a solution for my case :frowning: