[
https://issues.apache.org/jira/browse/NIFI-16572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vincenzo Lombardo updated NIFI-16572:
-------------------------------------
Status: Patch Available (was: Open)
> Enable per Process Group logging in MiNiFi Java
> -----------------------------------------------
>
> Key: NIFI-16572
> URL: https://issues.apache.org/jira/browse/NIFI-16572
> Project: Apache NiFi
> Issue Type: Improvement
> Components: MiNiFi
> Reporter: Vincenzo Lombardo
> Assignee: Vincenzo Lombardo
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> h2. Description
> NIFI-3065 (fixed in 1.23.0 / 2.0.0-M1) introduced per Process Group logging.
> A Process Group can set a {_}Log File Suffix{_}, and the logs of every
> component inside it are also written to a dedicated {{nifi-app-<suffix>.log}}
> file.
> The framework side of this feature already runs in MiNiFi Java:
> * {{StandardProcessGroup}} keeps the {{logFileSuffix}} from the flow
> definition.
> * {{StandardComponentLog}} adds the {{logFileSuffix}} key/value pair to
> every logging event a component emits.
> MiNiFi does not ship the two remaining pieces, so the suffix set in
> {{flow.json}} has no effect:
> # The {{nifi-per-process-group-logging}} jar, which holds
> {{{}org.apache.nifi.logging.NifiDiscriminator{}}}, is not in the MiNiFi
> assembly. NiFi puts it in {{lib/}}
> ({{{}nifi-assembly/src/main/assembly/core.xml{}}}); MiNiFi's
> {{dependencies.xml}} does not.
> # The MiNiFi default {{conf/logback.xml}} has no {{DEDICATED_LOGGING}}
> {{{}SiftingAppender{}}}, and nothing references one from the root logger.
> Users can work around this today by copying the jar into {{lib/}} and editing
> {{logback.xml}} by hand. Upgrades undo that work, and the jar version has to
> match the framework version.
> h2. Proposed change
> * {{{}minifi/minifi-assembly/pom.xml{}}}: add the
> {{org.apache.nifi:nifi-per-process-group-logging}} dependency.
> * {{minifi/minifi-assembly/src/main/assembly/dependencies.xml}} and
> {{{}dependencies-windows-service.xml{}}}: include the artifact in
> {{{}lib/{}}}.
> * {{{}minifi-resources/src/main/resources/conf/logback.xml{}}}: add the
> {{DEDICATED_LOGGING}} {{SiftingAppender}} with {{{}NifiDiscriminator{}}}, and
> reference it from {{{}<root>{}}}. This matches the NiFi default
> configuration. The appender uses the MiNiFi bootstrap log properties, so the
> files are named {{minifi-app-<suffix>.log}} by default. Rolling limits match
> the existing MiNiFi {{APP_FILE}} appender (10MB / 10 files / 100MB).
> h2. Expected behaviour
> A MiNiFi flow whose Process Group has {{"logFileSuffix": "foo"}} writes the
> logs of that group's components to {{{}logs/minifi-app-foo.log{}}}, in
> addition to {{{}minifi-app.log{}}}. This is the same behaviour as NiFi.
> h2. Notes
> Only messages logged through the component's {{ComponentLog}}
> ({{{}getLogger(){}}}) are routed. Loggers that a component creates directly
> with SLF4J are not routed, which is also the case in NiFi.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)