Search code examples
raspbiannode-red

How to store node-red logs in local storage?


I have setup node-red in Raspbian and I want to store the logs coming from node-red client in some storage place like .log file.


Solution

  • The hack to store node-red logs in linux distribution systems just follow the below steps:-

    1. Create a custom node-red service in /etc/systemd/system/ Command to make a .service file nano /etc/systemd/system/node-red-custom.service

      [Unit]
      Description=Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.
      After=syslog.target network.target
      Documentation=http://nodered.org/
      
      [Service]
      #Full Path to Node.js
      ExecStart=  /usr/bin/node-red
      WorkingDirectory=/root/node-red/
      # User/Group that launches node-RED (it's advised to create a new user for Node-RED)
      # You can do : sudo useradd node-red
      # then change the User=root by User=node-red
      User=root
      Group=root
      Nice=10
      #SyslogIdentifier=Node-RED
      SyslogIdentifier=node-red-custom
      StandardOutput=syslog
      StandardError=syslog
      # Make Node-RED restart if it fails
      Restart=on-failure
      # Node-RED need a SIGINT to be notified to stop
      KillSignal=SIGINT
      
      [Install]
      WantedBy=multi-user.target
      

      2.Make configuration file which targets where do you want to store the logs

      nano /etc/rsyslog.d/node-red-custom.conf

      if $programname == 'node-red-custom' then /var/log/node-red-logs.log
      & stop
      

    after creating these two file please run below commands

    sudo systemctl restart rsyslog
    sudo systemctl enable node-red-custom.service
    sudo systemctl start node-red-custom.service
    

    Now your custom node-red service start storing logs in /var/log/node-red-logs.log

    Note:- You must kill the running node-red service before enable the custom node-red service as mentioned above.