To create new wiki account, please join us on #znc at freenode and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Difference between revisions of "ZLog SQL"

From ZNC
Jump to: navigation, search
m
Line 6: Line 6:
  
 
== Features ==
 
== Features ==
# Supports both MySQL and SQLite databases.
+
* Supports both MySQL and SQLite databases.
# Asynchronous database writes on separate thread. Guarantees that ZNC won't hang during SQL connection timeout.
+
* Asynchronous database writes on separate thread. Guarantees that ZNC won't hang during SQL connection timeout.
# Automatic table creation (CREATE TABLE IF NOT EXIST)
+
* Automatic table creation (CREATE TABLE IF NOT EXIST)
# Retry after failed inserts. When database server is offline, logs are buffered to memory. They are saved when database is back online, so you won't lose logs during MySQL outages.
+
* Retry after failed inserts. When database server is offline, logs are buffered to memory. They are saved when database is back online, so you won't lose logs during MySQL outages.
  
 
== Quick start ==
 
== Quick start ==

Revision as of 13:14, 13 September 2017

This is a global Python module for MySQL/SQLite logging.

GitHub repository: https://github.com/stil/zlog-sql

Features

  • Supports both MySQL and SQLite databases.
  • Asynchronous database writes on separate thread. Guarantees that ZNC won't hang during SQL connection timeout.
  • Automatic table creation (CREATE TABLE IF NOT EXIST)
  • Retry after failed inserts. When database server is offline, logs are buffered to memory. They are saved when database is back online, so you won't lose logs during MySQL outages.

Quick start

  1. Copy zlog_sql.py to ~/.znc/modules/zlog_sql.py.
  2. In Webadmin, open the list of Global Modules.
  3. Make sure modpython is enabled.
  4. Enable module zlog_sql and set its argument.

For MySQL, set module argument matching following format:

mysql://username:password@localhost/database_name

Important: you need PyMySQL pip package for MySQL logging. Install it with pip3 install PyMySQL command.

For SQLite use following string format:

sqlite://home/user/logs.sqlite

or simply leave out the path

sqlite

in this case, logs are going to be written to the default path ~/.znc/moddata/zlog_sql/logs.sqlite.

  1. Save changes. SQL table schema is going to be created automatically.