提交 5e75fec6 编写于 作者: M Mike Beaton

OcLog: Allowing positive and negative filtering of unknown log lines, using `?` identifier

上级 e3de9179
......@@ -16,7 +16,7 @@ OpenCore Changelog
- Fixed regression for ACPI quirks `RebaseRegions` and `SyncTableIds`
- Updated build process to provide stable and bleeding-edge versions of `EnableGop`
- Implemented minor improvements in `PickerMode` `Apple`
- Improved filtering algorithm for `LogModules` option
- Improved filtering algorithm for `LogModules` and added `?` filter for matching non-standard log lines
- Fixed crash when gathering system report on virtualised CPUs
#### v0.9.1
......
97c56a093dd641371080fd3594c39713
b80643c92a9f4fdd8cd24a607f69f22c
......@@ -3877,17 +3877,21 @@ cat Kernel.panic | grep macOSProcessedStackshotData |
\item \texttt{+} --- Positive filtering: Only present selected modules.
\item \texttt{-} --- Negative filtering: Exclude selected modules.
\end{itemize}
When multiple ones are selected, comma (\texttt{,}) should be used as the splitter.
For instance, \texttt{+OCCPU,OCA,OCB} means \emph{only} \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} being printed,
while \texttt{-OCCPU,OCA,OCB} indicates these modules being filtered out (i.e. \emph{not} logged).
When no symbol is specified, positive filtering (\texttt{+}) will be used.
\texttt{*} indicates all modules being logged.
When multiple log line identifiers are selected, comma (\texttt{,}) should be used as the splitter.
For instance, \texttt{+OCCPU,OCA,OCB} means only \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} should be
logged, while \texttt{-OCCPU,OCA,OCB} indicates these modules should be filtered out (i.e. not logged).
Since there may be lines in the log with no valid prefix (i.e. log lines which are not generated by
parts of OpenCore, but by other loaded drivers) then the special module name question mark (\texttt{?})
can be included in the list to include (with positive filtering) or exclude (with negative filtering)
these non-standard lines. When no \texttt{+} or \texttt{-} symbol is specified, positive filtering
(\texttt{+}) will be used. \texttt{*} alone as the option value indicates all modules being logged.
\emph{Note 1}: Acronyms of libraries can be found in the
\hyperref[oc-mod-libs]{\texttt{Libraries}} section below.
\emph{Note 2}: Messages printed before the configuration of log protocol
cannot be filtered.
\emph{Note 2}: Messages printed before the configuration of the log protocol cannot be filtered
from the early on screen log, but on being de-buffered from the early log buffer, will be filtered
as requested for other log targets.
\emph{Note 3}: To avoid missing key issues, warning and error log messages
are not filtered.
......
\documentclass[]{article}
%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL PreviousConfiguration.tex Fri May 5 21:18:04 2023
%DIF ADD ../Configuration.tex Sun May 7 11:45:23 2023
%DIF ADD ../Configuration.tex Sun May 7 15:45:34 2023
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
......@@ -3948,17 +3948,23 @@ cat Kernel.panic | grep macOSProcessedStackshotData |
\item \texttt{+} --- Positive filtering: Only present selected modules.
\item \texttt{-} --- Negative filtering: Exclude selected modules.
\end{itemize}
When multiple ones are selected, comma (\texttt{,}) should be used as the splitter.
For instance, \texttt{+OCCPU,OCA,OCB} means \emph{only} \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} being printed,
while \texttt{-OCCPU,OCA,OCB} indicates these modules being filtered out (i.e. \emph{not} logged).
When no symbol is specified, positive filtering (\texttt{+}) will be used.
\texttt{*} indicates all modules being logged.
When multiple \DIFdelbegin \DIFdel{ones }\DIFdelend \DIFaddbegin \DIFadd{log line identifiers }\DIFaddend are selected, comma (\texttt{,}) should be used as the splitter.
For instance, \texttt{+OCCPU,OCA,OCB} means \DIFdelbegin \emph{\DIFdel{only}} %DIFAUXCMD
\DIFdelend \DIFaddbegin \DIFadd{only }\DIFaddend \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} \DIFdelbegin \DIFdel{being printed}\DIFdelend \DIFaddbegin \DIFadd{should be
logged}\DIFaddend , while \texttt{-OCCPU,OCA,OCB} indicates these modules \DIFdelbegin \DIFdel{being }\DIFdelend \DIFaddbegin \DIFadd{should be }\DIFaddend filtered out (i.e. \DIFdelbegin \emph{\DIFdel{not}} %DIFAUXCMD
\DIFdelend \DIFaddbegin \DIFadd{not }\DIFaddend logged).
\DIFdelbegin \DIFdel{When no }\DIFdelend \DIFaddbegin \DIFadd{Since there may be lines in the log with no valid prefix (i.e. log lines which are not generated by
parts of OpenCore, but by other loaded drivers) then the special module name question mark (}\texttt{\DIFadd{?}}\DIFadd{)
can be included in the list to include (with positive filtering) or exclude (with negative filtering)
these non-standard lines. When no }\texttt{\DIFadd{+}} \DIFadd{or }\texttt{\DIFadd{-}} \DIFaddend symbol is specified, positive filtering
(\texttt{+}) will be used. \texttt{*} \DIFaddbegin \DIFadd{alone as the option value }\DIFaddend indicates all modules being logged.
\emph{Note 1}: Acronyms of libraries can be found in the
\hyperref[oc-mod-libs]{\texttt{Libraries}} section below.
\emph{Note 2}: Messages printed before the configuration of log protocol
cannot be filtered.
\emph{Note 2}: Messages printed before the configuration of \DIFaddbegin \DIFadd{the }\DIFaddend log protocol cannot be filtered
\DIFaddbegin \DIFadd{from the early on screen log, but on being de-buffered from the early log buffer, will be filtered
as requested for other log targets}\DIFaddend .
\DIFaddbegin \emph{\DIFadd{Note 3}}\DIFadd{: To avoid missing key issues, warning and error log messages
are not filtered.
......
......@@ -224,7 +224,7 @@ IsPrefixFiltered (
Status = GetLogPrefix (FormattedString, Prefix);
if (EFI_ERROR (Status)) {
return FALSE;
AsciiStrCpyS (Prefix, ARRAY_SIZE (Prefix), "?");
}
for (Index = 0; Index < FlexFilters->Count; ++Index) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册