Commit 8aca3058 authored by thomas.forbriger's avatar thomas.forbriger

Merge branch 'master' into libirdatoxx

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.
parents 327ce73f 5b842c6e
......@@ -143,14 +143,16 @@ makegoal() {
# ============================================================================
#
DIRECTORIES="libs \
conv/many conv/misc conv/gfs/mine \
conv/many conv/misc \
green/disan green/grepg green/tools green/synt green/gremlin1 \
misc/util \
synt/ref/refmet synt/misc synt/disper synt/tt \
ts/wf ts/hd ts/refract ts/cal ts/fidase ts/lisousi ts/misc \
ts/plot ts/sousou ts/stuploxx \
3rd/software-for-seismometry \
3rd/eterna/src conv/su"
3rd/eterna/src \
conv/gfs/mine \
conv/su"
#
# ============================================================================
# **** action ****
......
this is <COPYING>
============================================================================
conv/ThiesDL1
-------------
$Id: $
============================================================================
This is a collection of code that supports serial line access to the Thies
DL1 precipitation data logger. The binary executable DL1logger provides
continuous data acquisition and data logger control.
Copyright (C) 2008, 2014 by Thomas Forbriger
----
DL1logger is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
----
----- END OF COPYING -----
......@@ -50,6 +50,7 @@
#include <tfxx/commandline.h>
#include <serialxx/serialport.h>
#include "thiesdl1.h"
#include "functions.h"
#include "error.h"
using std::cout;
......@@ -71,7 +72,7 @@ int main(int iargc, char* argv[])
DL1DIRECT_VERSION "\n"
"usage: DL1direct [-v] [-D] [-d device] command [argument]" "\n"
" [-timeout d]" "\n"
" or: DL1direct --help|-h" "\n"
" or: DL1direct --help|-h | --Id|-I" "\n"
};
// define full help text
......@@ -86,6 +87,7 @@ int main(int iargc, char* argv[])
"-D debug mode" "\n"
"-d dev device file dev" "\n"
"-timeout d set timeout to \"d\" seconds" "\n"
"-Id report source code Id\n"
"\n"
"supported commands are:" "\n"
"HH display commands accepted by DL1" "\n"
......@@ -116,6 +118,8 @@ int main(int iargc, char* argv[])
{"D",arg_no,"-"},
// 4: debug mode
{"timeout",arg_yes,"2"},
// 5: debug mode
{"Id",arg_no,"-"},
{NULL}
};
......@@ -137,6 +141,19 @@ int main(int iargc, char* argv[])
exit(0);
}
// request source code Id
if (cmdline.optset(5))
{
cerr << "Thies DL1 data logger source code version:" << endl;
int i=0;
while (dl1::CVSIDS[i]!=0)
{
cerr << dl1::CVSIDS[i] << endl;
++i;
}
exit(0);
}
Options opt;
opt.verbose=cmdline.optset(1);
opt.device=cmdline.string_arg(2);
......
This diff is collapsed.
......@@ -3,7 +3,7 @@
# ----------------------------------------------------------------------------
# $Id$
#
# Copyright (c) 2008 by Thomas Forbriger (BFO Schiltach)
# Copyright (c) 2008, 2014 by Thomas Forbriger (BFO Schiltach)
#
# start DL1logger with specific path settings
#
......@@ -11,6 +11,8 @@
# 19/12/2008 V1.0 Thomas Forbriger
# 13/01/2009 V1.1 issue port settings
# 13/11/2009 V1.2 after hardware replacement: uses genuine serial port
# 24/03/2014 V1.3 adjust values for flocke
# 31/03/2014 V1.4 separate data and log path; remove bin type output
#
# ============================================================================
......@@ -20,22 +22,20 @@ LOGGERBINARY=$HOME/bin/linux/DL1logger
DLDEVICE=/dev/ttyS0
PORTSETTINGS=1c00:4:dad:a30:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
DATADIR=$HOME/data/DL1
DATADIR=$HOME/DL1/data
GSEDIR=$DATADIR/gse
DUMPDIR=$DATADIR/dump
DATAPATH=$DATADIR/%T/%Y/%M/DL1data%Y%M%D.%T
ACTIVEPATH=$DATADIR/%T/DL1current.%T
DATATYPES=ascii
MEMORY=$DATADIR/DL1memory
mkdir -pv $GSEDIR | /bin/logger -i -t "DL1logger $0" 2>&1
mkdir -pv $DUMPDIR | /bin/logger -i -t "DL1logger $0" 2>&1
echo stty -F $DLDEVICE $PORTSETTINGS | /bin/logger -i -t "DL1logger $0" 2>&1
stty -F $DLDEVICE $PORTSETTINGS | /bin/logger -i -t "DL1logger $0" 2>&1
stty -F $DLDEVICE -a | /bin/logger -i -t "DL1logger $0" 2>&1
$LOGGERBINARY -port $DLDEVICE \
-memory $MEMORY -datadir $GSEDIR -dumpdir $DUMPDIR \
-tolerateredundant -toleratewrongtime
$LOGGERBINARY -port $DLDEVICE -memory $MEMORY \
-datapath $DATAPATH -activepath $ACTIVEPATH \
-datatypes $DATATYPES -toleratewrongtime
# ----- END OF DL1logger.sh -----
This program controls data logging from a Thies DL1 data logger.
-xhelp print extended usage information
-verbose be verbose
-port device use device file "device"
-lastdate d in case the memory file is missing use this date
-memory path path to memory file
-activepath pattern pattern for path to store current data
-datapath pattern pattern for path to store data for completed days
-datatypes t[,t,...] data types to be used for output
-interval i poll data every i minutes
-toleratewrongtime tolerate lines with wrong time, do not abort
Path patterns
-------------
The patterned passed as an agrument of option '-datapath' specifies the
complete file path, including the actual file name. It must contain the
following templates:
%Y: will be replaced by current year
%M: will be replaced by current month
%D: will be replaced by current day of month
%T: will be replaced by file type (i.e. the libdatrwxx file type passed as
argument to option '-datatypes' or 'thiesdl1' in case of raw dumps)
All patterns must be present in order to make data files unique. If a pattern
is missing, this is reported as an error and causes the program to terminate.
Example: data/ThiesDL1/%T/%Y/%M/DL1%Y%M%D.%T
Data for the current (not yet completed) day are stored separately and are
updated in intervals specified by option '-interval'. Option '-activepath'
defines the data path for current files. The templates %Y, %M, and %D need not
be used in this pattern, however %T is mandatory.
Sampling interval
-----------------
Notice that the sampling interval of 60s used by the DL1 cannot be specified
properly in output formats storing sampling in terms of sampling rate. This
applies to the GSE and SFF formats. The data files will indicate a sampling
rate of 0.016667 Hz. This equals a sampling interval of
1 s / 0.016667 = 59.988002 s
The samples of one day thus span a time of
59.988002 s * 1440 = 86382.723 s
Hence there is an apparent sampling residual of
86400 s - 86382.723 s = 17.276545 s
in each file.
Tolerance mode
--------------
The Thies DL1 logger has a sequential memory. It simply adds data lines.
In cases lines with illegal time values can appear if the logger was set to a
wrong time value. These non-matching lines simply appear in the list of data
lines without comment and without the possibility to remove them. The Record
module checks for these conditions. If the program would inevitably abort upon
such conditions, it would be impossible to retrieve data in case of a
corrupted data set in the DL1 memory. For this reason the tolerance mode was
introduced. In case of weird data lines, a comment is written to the output
file.
Apparently a line for a specific minute can be added twice in case the logger
is interrupted. This is considered as normal operation. Sample values for
lines with identical time stamps are added. For details see the doxygen
documentation and page "Duplicate entries in Thies DL1 data" there.
Message logging
---------------
All informational log messages concerning parameter settings, daily operation,
etc are sent with log level "notice". Frequent informations concerning the
poll cycle are sent with log level "info". Non-matching data and time out
conditions are reported with log level "err" or "warning". All conditions that
may terminate the program are reported as "crit" or "emerg".
Operation
---------
This program controls the Thies DL1 data logger through a serial port
interface. I runs in an infinite loop.
Each morning at approximately 1:00 UT the data logger's clock is synchronized
with the time of the system the program is running on. The timing precision
cannot be better than +-1s. Its accuracy will depend on the system time of the
host running DL1logger.
The program maintains data files:
1. A dump of raw DL1 data tables
2. Data files in specified formats (as requested by option '-datatypes')
The daily files are created at about 1:00 UT. The files containing the current
day's data are updated after an interval specified by option '-interval'.
To ensure that no data is missed in case of unexpected termination of the
program, the date of the last complete data file is stored in a memory file
specified by the '-memory' option.
All messages are written to the system log. If the '-verbose' option is
selected, standard message are also sent to the terminal. The messages are
tagged with "DL1logger" mapped to uniform sampling with 60s sampling interval.
The DL1 provides samples at the end of a full minute. The value for the past
minute is mapped to the middle of the past minute (at 30s).
##
## config file to save and send DL1 messages on flocke
## thof 24.3.2014
##
## rsyslog configuration file to be placed in /etc/rsyslog.d
## on the host running DL1logger
##
## log messages are stored in local files in /etc/log
## an are sent to two hosts via TCP port 2222
##
# ######### Receiving Messages from Remote Hosts ##########
# TCP Syslog Server:
# provides TCP syslog reception and GSS-API (if compiled to support it)
$ModLoad imtcp.so # load module
$InputTCPServerRun 2222 # Starts a TCP server on selected port
if ($programname == 'DL1logger' or $syslogtag == 'DL1logger') and \
($syslogseverity <= 5 /* notice */) \
then action(type="omfile" File="/var/log/dl1log" FileCreateMode="0644")
& action(type="omfile" File="/var/log/dl1logall" FileCreateMode="0644")
& @@192.168.1.41:2222
& @@192.168.1.17:2222
& ~
if ($programname == 'DL1logger' or $syslogtag == 'DL1logger') and \
($syslogseverity <= 8 /* any */) \
then action(type="omfile" File="/var/log/dl1logall" FileCreateMode="0644")
& @@192.168.1.41:2222
& @@192.168.1.17:2222
& ~
##
## config file to save and send DL1 messages on stromboli and pinatubo
## thof 24.3.2014
##
## rsyslog configuration file to be placed in /etc/rsyslog.d
## on data control hosts (like stromboli and pinatubo)
##
## log messages are received via TCP port 2222 and are stored
## in local files in /etc/log
##
# ######### Receiving Messages from Remote Hosts ##########
# TCP Syslog Server:
# provides TCP syslog reception and GSS-API (if compiled to support it)
$ModLoad imtcp.so # load module
$InputTCPServerRun 2222 # Starts a TCP server on selected port
if ($programname == 'DL1logger' or $syslogtag == 'DL1logger') and \
($syslogseverity <= 5 /* notice */) \
then action(type="omfile" File="/var/log/dl1log" FileCreateMode="0644")
& action(type="omfile" File="/var/log/dl1logall" FileCreateMode="0644")
& ~
if ($programname == 'DL1logger' or $syslogtag == 'DL1logger') and \
($syslogseverity <= 8 /* any */) \
then action(type="omfile" File="/var/log/dl1log" FileCreateMode="0644")
& ~
# this is <DL1logger_syslog-ng_local.conf>
# ============================================================================
# configuration file for syslog-ng on DL1 recording host
# ------------------------------------------------------
# 2014-03-27
# ============================================================================
# BFO Thies DL1
destination dl1logall { file("/var/log/dl1logall" fsync(yes) perm(0644)); };
destination dl1log { file("/var/log/dl1log" fsync(yes) perm(0644)); };
destination dl1logremote1 { tcp("192.168.1.41" port(2222)); };
destination dl1logremote2 { tcp("192.168.1.17" port(2222)); };
filter f_dl1 { match('^DL1logger' value(MSGHDR)); };
filter f_dl1_notice { match('^DL1logger' value(MSGHDR)) and not level(info); };
log { source(src); filter(f_dl1); destination(dl1logall); };
log { source(src); filter(f_dl1_notice); destination(dl1log); };
log { source(src); filter(f_dl1); destination(dl1logremote1); };
log { source(src); filter(f_dl1); destination(dl1logremote2); };
#
# remove DL1 messages from normal system log
# replace the standard filter by the following filter:
## filter f_messages { not facility(news, mail) and not filter(f_iptables)
## and not filter(f_dl1); };
#
# ----- END OF DL1logger_syslog-ng_local.conf -----
# this is <DL1logger_syslog-ng_remote.conf>
# ============================================================================
# configuration file for syslog-ng on host receiving messages from DL1
# --------------------------------------------------------------------
# 2014-03-27
# ============================================================================
#
# BFO Thies DL1
destination dl1log { file("/var/log/dl1log" fsync(yes) perm(0644)); };
destination dl1logall { file("/var/log/dl1logall" fsync(yes) perm(0644)); };
source DL1 { tcp(port(2222)); };
filter f_dl1 { match('^DL1logger' value(MSGHDR)); };
filter f_dl1_notice { match('^DL1logger' value(MSGHDR)) and not level(info); };
log { source(DL1); filter(f_dl1); destination(dl1logall); };
log { source(DL1); filter(f_dl1_notice); destination(dl1log); };
#
# remove DL1 messages from normal system log
# replace the standard filter by the following filter:
## filter f_messages { not facility(news, mail) and not filter(f_iptables)
## and not filter(f_dl1); };
#
# ----- END OF DL1logger_syslog-ng_remote.conf -----
usage: DL1logger [-verbose] [-port device] [-lastdate date] [-memory path]
[-interval i] [-toleratewrongtime] [-activepath pattern]
[-datapath pattern] [-datatypes type[,type,...]]
or: DL1logger --help|-h
or: DL1logger --xhelp
......@@ -11,6 +11,7 @@
% 15/10/2010 V1.1 comment on message() versus match() filter in
% syslog-ng
% 18/04/2011 V1.2 added logrotate documentation
% 01/04/2014 V1.3 update to current version of DL1logger
%
% ============================================================================
%
......@@ -53,8 +54,10 @@
\newcommand{\Dntpscript}{\texttt{ntpreport.sh}}
\newcommand{\DLdirect}{\texttt{DL1direct}}
\newcommand{\DLlogger}{\texttt{DL1logger}}
\newcommand{\Dloggerhost}{\textsc{netrunner}}
\newcommand{\DloggerhostIP}{\texttt{192.168.1.26}}
\newcommand{\Dloggerhost}{\textsc{flocke}}
\newcommand{\DloggerhostIP}{\texttt{192.168.1.34}}
\newcommand{\Dstoragehost}{\textsc{pinatubo}}
\newcommand{\DstoragehostIP}{\texttt{192.168.1.17}}
\newcommand{\Ddisplayhost}{\textsc{stromboli}}
\newcommand{\DdisplayhostIP}{\texttt{192.168.1.41}}
\newcommand{\Dserialdevice}{\texttt{/dev/ttyUSB0}}
......@@ -81,7 +84,9 @@ Black Forest Observatory (BFO)\\
Heubach 206,
D-77709 Wolfach\\
\vspace{3pt}
\today\ (\mbox{\texttt{$$Revision$$}})\par
\today\ (\mbox{\texttt{$$Revision$$}})\\
\input{version.xxx}
\par
\end{raggedleft}
\bigskip
\thispagestyle{plain}
......@@ -103,7 +108,7 @@ These pulses are counted by a \DTDL.
The \DTDL\ maintains a data ring-buffer.
Its contents can be accessed through the local display, a memory card, or the
RS-232 serial port.
We use a Linux machine (\Dloggerhost) connected to the serial port to control
We use a Linux host (\Dloggerhost) connected to the serial port to control
the \DTDL\ and to collect precipitation data.
\subsection{Data acquisition program}
......@@ -120,8 +125,8 @@ for information on data sampling, poll cycles, message logging, and so on.
The data acquisition program (\DLlogger) is started from a shell script
(\Dlogscript, see Section~\ref{sec:prog:dlogscript}).
This shell script sets the correct values for the data directories, creates
them, and initializes the serial port prior to execution of \DLlogger.
This shell script sets the correct patterns for data file path names
and initializes the serial port prior to execution of \DLlogger.
The script \Dlogscript\ itself is executed from the launch-script
\Dlaunchscript\ (see Section~\ref{sec:prog:dlaunchscript}).
The latter first checks whether an instance of the logger is in operation.
......@@ -145,7 +150,7 @@ This configuration also sends messages to a second system for monitoring
purposes.
Two files are maintained.
One contains all messages that are tagged \DLlogger.
These messages comprise alos purely informational messages that are issued in
These messages comprise also purely informational messages that are issued in
each poll cycle to indicate the activity of \DLlogger.
This log stream is also exported to the display host \Ddisplayhost\ for
monitoring purposes.
......@@ -159,28 +164,26 @@ Log messages with tag \DLlogger\ are excluded from the usual system log.
The data archive maintained by \DLlogger\ contains two types of data files.
The first are called dump-files and are simply literal copies of the data
received from the \DTDL\ together with some diagnostics.
The second kind of data files uses GSE format, contains diagnostics too and
is ready to be processed by plotting facilities.
The GSE data contains data in counts, not mm.
The second kind of data files use formats supported by libdatrwxx for outputs,
contains diagnostics too and might be more convenient for routine processing.
The second kind of data contains data in counts, not mm.
Both data archives contain files for completed days that provide the date in
the file name (as well as in the file's header).
the path name (as well as in the file's header).
The current data for uncompleted days is stored in files called
\texttt{active.asc} and \texttt{active.gse} for the dump and the GSE data
respectively.
separate files, usually not indicating the date in the path name.
The latter are updated in periodic poll intervals.
Data is copied to the data storage host \Dstoragehost\ by \texttt{csback}
controlled by the \texttt{cron} daemon on \Dstoragehost.
The data archive can be provided to other hosts via network file system (NFS).
An example export entry is provided in Section~\ref{sec:conf:exports:logger}.
The sampling interval provided in the GSE data files is not exact, since GSE
specifies a data rate rather than an interval.
See Section~\ref{sec:prog:dllogger} for further comments.
\subsection{Timing}
Once a day the data logger \DLlogger\ synchronizes the \DTDL\ to the system
Once in a day the data logger \DLlogger\ synchronizes the \DTDL\ to the system
clock of \Dloggerhost.
See Section~\ref{sec:prog:dllogger} for further comments on timing accuracy.
The system clock of \Dloggerhost\ must by disciplined by NTP (network time
protocol).
To support easy monitoring of the systems state of health a shell script
To support easy monitoring of the system's state of health a shell script
\Dntpscript\ (Section~\ref{sec:prog:dlntpscript}) is executed once a day by
the cron deamon (see Section~\ref{sec:conf:crontab:logger}).
This script polls the state of NTP peers and writes it to the system log
......@@ -198,10 +201,10 @@ Binaries \DLlogger\ and \DLdirect\ are installed in
Shell scripts \Dlogscript, \Dlaunchscript, and \Dntpscript\ are installed in
\Dloggeruserhome\texttt{/bin/scripts}.
The \DLlogger\ memory file, the data files, and logs of the launch script go
to \Dloggeruserhome\texttt{/data/DL1} and subdirectories therein.
to \Dloggeruserhome\texttt{/DL1/data} and subdirectories therein.
\subsection{Data stream}
\DLlogger\ uses the following identifiers for the data steam in GSE files:
\DLlogger\ uses the following identifiers for the data stream in data files:
\vspace{-12pt}
\begin{description}
\parskip0pt
......@@ -222,15 +225,15 @@ The channel ID is defined according to the SEED reference manual (Appendix~A):
%----------------------------------------------------------------------
\section{Data monitoring}
A second host (\Ddisplayhost) may be used for the purpose of monitoring, data
quality control, and data backup.
Data are made available through an NFS mount
(Section~\ref{sec:conf:fstab:display}).
Data storage takes place on a second host (\Dstoragehost).
A third host (\Ddisplayhost) may be used for the purpose of monitoring and
data quality control. and data backup.
Log messages are made available through syslog in a local file
(Section~\ref{sec:conf:syslog:display}).
\subsection{Data graph monitor}
The data files are made available through NFS.
The data files are made available through \texttt{csback} and NFS.
Quality control plots are maintained through the monitor suite at BFO.
The processing and plotting mechanism is described elsewhere in a difference
document.
......@@ -239,7 +242,7 @@ For calibration purposes in particular a direct display of the current data
file can be useful.
The file can be displayed in a local terminal window by using the command
\begin{quote}
\texttt{less /data/DL1/dump/active.asc}
\texttt{less /data/BFO/DL1/data/thiesdl1/DL1current.thiesdl1}
\end{quote}
The display will be updated upon pressing the \texttt{R}-key.
......@@ -274,92 +277,30 @@ To return to automatic updates press the \texttt{F}-key again.
# ----- END OF crontab -----
\end{verbatim}
%----------------------------------------------------------------------
\subsection{\texttt{/etc/exports} on \Dloggerhost}
\label{sec:conf:exports:logger}
\begin{verbatim}
[...]
/home/dl1/data/DL1 *(ro,root_squash,sync,no_subtree_check)
[...]
\end{verbatim}
%\subsection{\texttt{/etc/exports} on \Dloggerhost}
%\label{sec:conf:exports:logger}
%\begin{verbatim}
%[...]
%/home/dl1/data/DL1 *(ro,root_squash,sync,no_subtree_check)
%[...]
%\end{verbatim}
%----------------------------------------------------------------------
\subsection{\texttt{/etc/fstab} on \Ddisplayhost}
\label{sec:conf:fstab:display}
\begin{verbatim}
[...]
netrunner:/home/dl1/data/DL1 /data/DL1 nfs defaults,auto,ro 0 0
pinatubo:/data/BFO /data/BFO nfs defaults,auto,ro 0 0
[...]
\end{verbatim}
%----------------------------------------------------------------------
\subsection{\texttt{/etc/syslog-ng/syslog-ng.conf} on \Dloggerhost}
\label{sec:conf:syslog:logger}
The following excerpt is from the syslog configuration file on the logger host
\Dloggerhost.
The messages from the data acquisition program are written to a local file and
to a second host (the display host \Ddisplayhost) via TCP.
\subsection{\texttt{syslog} configuration on \Dloggerhost}
The \texttt{syslog} daemon on \Dloggerhost\ should configured appropriately
to maintain local log files and send messages to \Ddisplayhost\ and
\Dstoragehost.
Two local files are maintained.
One of them collects all messages while the other only collects messages that
are not at level info.
\begin{verbatim}
[...]
# BFO Thies DL1
destination dl1logall { file("/var/log/dl1logall" fsync(yes) perm(0644)); };
destination dl1log { file("/var/log/dl1log" fsync(yes) perm(0644)); };
destination dl1loghugoiv { tcp("192.168.1.27" port(2222)); };
filter f_dl1 { match('^DL1logger'); };
filter f_dl1_notice { match('^DL1logger') and not level(info); };
log { source(src); filter(f_dl1); destination(dl1logall); };
log { source(src); filter(f_dl1_notice); destination(dl1log); };
log { source(src); filter(f_dl1); destination(dl1loghugoiv); };
[...]
\end{verbatim}
The following definition keeps the \DLlogger\ diagnostics away from the system
log.
\begin{verbatim}
[...]
filter f_messages { not facility(news, mail) and not filter(f_iptables)
and not filter(f_dl1); };
[...]
\end{verbatim}
%----------------------------------------------------------------------
\subsection{\texttt{/etc/syslog-ng/syslog-ng.conf} on \Ddisplayhost}
\label{sec:conf:syslog:display}
On the display host \Ddisplayhost\ the messages from the data acquisition
software are received via TCP and syslog.
They are stored in local files with global read permissions.
\begin{verbatim}
[...]
# BFO Thies DL1
destination dl1log { file("/var/log/dl1log" fsync(yes) perm(0644)); };
destination dl1logall { file("/var/log/dl1logall" fsync(yes) perm(0644)); };
source vesuv { tcp(port(2222)); };
filter f_dl1 { match('^DL1logger'); };
filter f_dl1_notice { match('^DL1logger') and not level(info); };
log { source(vesuv); filter(f_dl1); destination(dl1logall); };
log { source(vesuv); filter(f_dl1_notice); destination(dl1log); };
[...]
\end{verbatim}
With newer versions of \texttt{syslog-ng} you have to use
\begin{verbatim}
[...]
# BFO Thies DL1
destination dl1log { file("/var/log/dl1log" fsync(yes) perm(0644)); };
destination dl1logall { file("/var/log/dl1logall" fsync(yes) perm(0644)); };
source DL1 { tcp(port(2222)); };
filter f_dl1 { match('^DL1logger' value(MSGHDR)); };
filter f_dl1_notice { match('^DL1logger' value(MSGHDR)) and not level(info); };
log { source(DL1); filter(f_dl1); destination(dl1logall); };
log { source(DL1); filter(f_dl1_notice); destination(dl1log); };
[...]
\end{verbatim}
%----------------------------------------------------------------------
\subsection{\texttt{/etc/rsyslog.d/netrunnerDL1.conf} on \Ddisplayhost}
\label{sec:conf:rsyslog:display}
If \texttt{rsyslog} is used instead of \texttt{syslog-ng}, configuration is
different.
Make sure that
If \texttt{rsyslog} is used, make sure that
\begin{verbatim}