" Language: Generic log file
" Maintainer: Mao-Yining <https://github.com/mao-yining>
" Former Maintainer: MTDL9 <https://github.com/MTDL9>
-" Latest Revision: 2025-09-13
+" Latest Revision: 2025-09-16
if exists('b:current_syntax')
finish
syn keyword logBoolean true false
syn keyword logNull null nil nullptr none
-syn region logString start=/"/ end=/"/ end=/$/ skip=/\\./
+syn region logString start=/"/ end=/"/ end=/$/ skip=/\\./ contains=logJavaError
" Quoted strings, but no match on quotes like "don't", "plurals' elements"
-syn region logString start=/'\(s \|t \| \w\)\@!/ end=/'/ end=/$/ end=/s / skip=/\\./
+syn region logString start=/'\(s \|t \| \w\)\@!/ end=/'/ end=/$/ end=/s / skip=/\\./ contains=logJavaError
" Dates and Times
syn match logFilePath '\<\w:\\\f\+'
syn match logFilePath '[^a-zA-Z0-9"']\@<=/\f\+'
+" Java Errors
+"---------------------------------------------------------------------------
+syn match logJavaError '\%(\%(Error\|Exception\):\s*\)\zs\w.\{-}\ze\(\\n\|$\)' contained
+
" Syslog Columns
"---------------------------------------------------------------------------
hi def link logMacAddress Label
hi def link logFilePath Conditional
+hi def link logJavaError ErrorMsg
+
hi def link logSysColumns Conditional
hi def link logSysProcess Include