butler icon indicating copy to clipboard operation
butler copied to clipboard

Incorrect filter in XML appender file for detecting successful app reloads

Open mountaindude opened this issue 5 months ago • 0 comments

What version of Butler are you using?

12.4.2

What version of Node.js are you using? Not applicable if you use the standalone version of Butler.

No response

What command did you use to start Butler?

What operating system are you using?

What CPU architecture are you using?

What Qlik Sense versions are you using?

2024-May IR

Describe the Bug

The XML appender does not detect successful reloads as it used to. Could be that Sense's log output has changed in recent versions.

Currently the following is found in the scheduler log appender that ships with Butler:


    <!-- Appender for detecting successful reload tasks -->
    <appender name="ReloadTaskSuccessLogger" type="log4net.Appender.UdpAppender">
        <filter type="log4net.Filter.StringMatchFilter">
            <param name="stringToMatch" value="Reload complete" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />
        <param name="remoteAddress" value="<IP of server where Butler is running>" />
        <param name="remotePort" value="9998" />
        <param name="encoding" value="utf-8" />
        <layout type="log4net.Layout.PatternLayout">
            <converter>
                <param name="name" value="hostname" />
                <param name="type" value="Qlik.Sense.Logging.log4net.Layout.Pattern.HostNamePatternConverter" />
            </converter>
            <param name="conversionpattern" value="/scheduler-reloadtask-success/;%hostname;%property{TaskName};%property{AppName};%property{User};%property{TaskId};%property{AppId};%date;%level;%property{ExecutionId};%message" />
        </layout>
    </appender>


    <!-- Send message to Butler on reload task success -->
    <logger name="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask">
        <appender-ref ref="ReloadTaskSuccessLogger" />
    </logger>

Note the "stringToMatch" value of "Reload complete", which should appear in log entries from the "System.Scheduler.Scheduler.Slave.Tasks.ReloadTask". subsystem.

The problem is that this string does not appear there.

A better solution is to look for "Execution State Change to FinishedSuccess" as message from the "System.Scheduler.Scheduler.Master.Task.TaskSession" subsystem. This is confirmed to work with QSEoW 2024-May.

Expected Behavior

No response

To Reproduce

No response

mountaindude avatar Sep 19 '24 10:09 mountaindude