#this is a fragment from httpd.conf to show an example
#(and I hope the strengths too....)
#load the dblog_module with mod_so
#compiling in is not possible, but if you succeded tell me!
LoadModule dblog_module /home/developer/ ... /mod_dblog.so
#Load any other files required by your loging modules
LoadFile /usr/local/postgres7.1.2/lib/libecpg.so
LoadFile /usr/local/postgres7.1.2/lib/libpq.so
#Tell mod_mylog to load the loging modules
LoadLogModule pgemb_mod /home/developer/ ... /embededsql/embsql.so
LoadLogModule pqloger /home/developer/ ... /postgres/pqloger.so
#now let`s see the per directory configuration
#say nothing for the htdocs directory, so it won`t be loged.
#set database connection string for the directory 'manual'
LogServer db=www; host=otherhost; pwd=haliho; user=www;
#set the loging module for the directory
LogType pgemb_mod
#the other directory can be configured other way, and the configuration
#directives can override each others of course.
LogServer db=www; host=localhost; pwd=pwd; user=wwwuser; port=5432; mas=mi;
LogType pqloger
#The configuration directives implemented now:
# LoadLogModule
#
# Loads the dynamic shared object named by the second param and
# re solves the symbol nameb by the first param.
# If you want to use any RDMBS specific module, you must first load
# it with this directive.
# LogServer
#
# Sets the connection string. It uses it`s own format for describing the
# the connection. The connect string is a list of key-value pairs in
# format "key=value;" (the end of the key-name is at the '=' the end
# of the value is at ';')
# The key is one of the following (see dblogi.h):
# user, pwd, host, port, db, socket, connect
# LogType
#
# Sets the loging module for the directory
#-----------------------------------------------------------------------------
#This is implemented now, for the stable release, there should be some more
#configuration directives:
# ConnectOnStart [On | Off]
#
# This will tell apache to connect to the database server on startup time
# or only if requested.
# I donno if it should be a per directory or a resource config directive.
#-----------------------------------------------------------------------------
#How failover SHOULD look like:
#(plans for the near future)
#POSSIBLE SITUATIONS:
#1. Let`s say you have two server (sql1 and sql2). You want to use
#sql2 only if sql1 is dead.
#2. You have two sql servers. You have to write the log first to sql1 and then
#to sql2.
# subcases:
# 2.1 ignoring the failure of the first server.
# 2.2 only if the first loging succeeded.
# 2.3 only if the first loging failed.
#sql1 and sql2 can be diffenrent RDBMS too.
#loging the same request to multiple RDBMS require more configuration
#directives.
#IDEA ONLY:
#The httpd.conf`s structure is not flexible enough. Let`s create an outside
#config file parsed by the central module. The configuration file looks
#like a object-oriented programming language, it uses try-catch blocks.
#this could look like a python script:
#try:
# AddLogServer mysql host=host1; db=www; user=nobody; pwd=hello;
#catch:
# AddLogServer mysql host=host2; db=www; user=nobody; pwd=zdrastvujtye;
#(this script logs on host1, or if it failed host2)
#other possibilities:
#xml
#c++-style