Notification Logger 

The Notification Logger enables saving of notifications in a database so the they can be used for analyzing firmware and applications. Saved notifications can be queried via RSC interfaces. 

The logger archives offer functions for acquiring and filtering of incoming notifications as well as for re­questing and deleting. Using different archives makes it possible to save notifications for different issues and purposes, e.g.:

  • Firmware diagnostics
    Short-term saving of firmware events for diagnostics by the service.
  • Network diagnostics
    Saving of diagnostic messages from network components over a short period for diagnosing disconnections or sporadic delays.
  • Application diagnostics
    Saving notifications of the application program, e.g., malfunctions of machines, refilling consumables, error messages by integrated aggregates.

The Notification Logger registers with the Notification Manager for all configured notifications and thus receives all applicable messages that are sent. The saved notifications can be queried, displayed and evaluated using external tools, such as RSC services.

Structure of Notification Logger

Displaying notifications

Notifications that are present on a controller are displayed in PLCnext Engineer and in the Web-based Management on the controller.

Notifications in PLCnext Engineer

  • In the PLANT area, click on the controller (e.g., AXC F 2152).
  • Select the Cockpit editor.
  • Select the Notifications tab.

For detailed information on displaying notifications in PLCnext Engineer, refer to its online help.

Notifications in the Web-based Management

  • Log in to the Web-based Management on your device.
  • Open the Diagnostics section in the navigation on the left.
  • Select the Notifications entry.

For detailed information on displaying notifications in the Web‑based Management, see

Notification classes in C++ programs

The PLCnext Technology SDK contains helpful classes for the Notification Logger. If you want to use a notification class, integrate it into your program via an #include command, (e.g., #include Arp/Services/NotificationLogger/Services/INotificationLoggerService.hpp).

Note: From 2022.0 LTS, the RSC service has changed. For future-proof applications, especially if you are sure there is no need to downgrade to a firmware before 2022.0 LTS, use INotificationLoggerService2.

Further information on the classes and their applications is available directly in the API documentation.

Saving notifications

The Notification Logger already contains several archives out of the box that enable notifications to be saved for different issues and purposes. A logger archive subscribes to all notifications to be received. Additionally, filters can be used in an archive for the subscribed notifications that refer to their metadata. By filtering you can select which notifications are actually saved. 

The Notification Logger uses archives for registering, saving and querying notifications. It provides a uniform interface to these archives and enables the configuration of the archives via the configuration files.

The notifications are permanently stored in an SQLite database. This way, the file is not system-oriented and, after copying it to another system, can be opened and processed with the appropriate tools. The predefined databases are available on the file system of your controller at /opt/plcnext/logs/default.sqlite*.sqlite.

Note: From firmware release 2025.0 on, it is recommended for PLCnext Technology Apps to use the Apps.sqlite archive for their notifications.

Configuring the Notification Logger

If necessary, you can configure the Notification Logger by editing a configuration file in XML format using any text or code editor. 

Find the Notification Logger configuration files in these directories:

  • on PLCnext Control devices with firmware 2025.0 or newer this directory is recommended:
    /opt/plcnext/config/Services/NotificationLogger/*.config
  • on first generation PLCnext Control devices, regardless of the firmware release:
    /opt/plcnext/projects/Default/Services/NotificationLogger/*.config

The configuration file is imported during the start of the firmware, therefore changes to the configuration are automatically applied after a restart of the controller.

Configuring access permissions to notification archives

From firmware release 2025.0 or newer

You need to configure the access permissions for your notification archives. For Secure-by-default PLCnext Control devices (and as well for the first generation of PLCnext Control devices with active Security Profile),

The firmware already installs the file /opt/plcnext/config/System/Um/Permissions/Arp.Services.NotificationLogger.Archive.um.config which can then be adapted to your needs. Tip: For complex configurations with several logger archives, consider to copy the file to each archive.

The initially installed file contains an XML element <PermissionDatabase> commented out. Remove the commenting characters around that XML element and replace the archive name "DemoArchive" by your archive name.

Furthermore, if you want not only the "Admin" role to access your archive, copy and paste the XML element <PermissionSet>, and then replace  the "Admin" user role by the intended user role in that XML element copy. 

Up to firmware release 2024.6

The access permissions of each user role is predefined for all notification archives on the first generation of PLCnext Control devices.
Note: With active Security Profile, the rules for firmware 2025.0 or newer apply.

Configuring your own notifications and archives

Configuring a new notification archive

If you create your own notifications you can configure the Notification Logger to log those notifications, too. If those notifications shall be logged into a new notifications archive, the access permissions need to be configured in addition.

Configuring the Notification Logger is done by 

  1. defining an archive
  2. including the path to configuration files.

Defining an archive

Define an archive between the <Archives> and </Archives> tags using the following attributes:

Attribute Description
Archive name Name of the archive. The name is used as a basis for the file names.
Notification name Name of the notification to be saved to the archive. This element can occur any number of times.
ExclusionFilter  Specification of the input filter for notifications. This can refer to any part of the namespace. All subordinate notifications are recorded. All notifications matching the filter are discarded and not saved.
  And   AND link of several filter elements. Contains any number of other filter elements
  Or   OR link of several filter elements. Contains any number of other filter elements
  Not   Negation of a filter element. Contains exactly one other filter element
  NotificationName   Regex attribute: Regular expression for the notification name
  SenderName   Regex attribute: Regular expression for the sender name of the notification
  Severity   operator attribute: comparison functions are GT, GE, LT, LE, EQ;
threshold attribute: comparison values are Default, Info, Warning, Error, Critical, Fatal
Storage Specification of the persistent storage of the archive
  path   Path for saving the archive files
  SizeLimitation   Limitation of file size
  → FilesizeLimitation   MaxFilesize attribute: Maximum storage space in bytes; positive integer required, permitted suffixes are kB (*1024), MB (*1048576)
  SizeReduction   Action for reducing the file size. The action is executed as soon as SizeLimitation is violated.
  → DeleteOldestEntries   NumberOfEntriesToDelete attribute: Number of elements to be deleted, positive integer

Integrating configuration files

Configuration files are integrated between the <Includes> and </Includes> tags.

Use the Include path attribute to reference further files to be integrated by indicating their path. The element can occur any number of times.

Example

A configuration file for the Notification Logger is structured as shown in the following example:


      <?xml version="1.0" encoding="UTF-8"?>
      <NotificationLoggerConfigurationDocument
          xmlns="http://www.phoenixcontact.com/schema/notificationloggerconfiguration"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.phoenixcontact.com/schema/notificationloggerconfiguration"
          schemaVersion="1.0">
          <Includes>
              <Include path="$ARP_PROJECTS_DIR$/Default/" />
          </Includes>
           
          <Archives>
              <Archive name="Default"
                  <Notifications>
                      <Notification name="Arp" />
                  </Notifications>
                  <ExclusionFilter>
                      <Severity Operator="LE" Threshold="Info" />
                  </ExclusionFilter>
                  <Storage path="$ARP_PROJECTS_DIR$/Default/Services/NotificationLogger/archives">
                      <SizeLimitation>
                          <FileSizeLimitation MaxFileSize="64MB" />
                      </SizeLimitation>
                      <SizeReduction>
                          <DeleteOldestEntries NumberOfEntriesToDelete="16" />
                      </SizeReduction>
                  </Storage>
               </Archive>
           </Archives>
      </NotificationLoggerConfigurationDocument>

 

 


• Published/reviewed: 2026-06-11  ✿  Revision 095 •