[ 
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)

Reply via email to