setlinebuf(stderr);
 
        if (glite_common_log_init()) {
-               fprintf(stderr,"glite_common_log_init() failed, exiting.\n");
+               fprintf(stderr,"glite_common_log_init() failed, exiting.");
                exit(1);
        }
        glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, "Initializing...");
        glite_srvbones_set_param(GLITE_SBPARAM_REQUEST_TIMEOUT, &to);
        to = (struct timeval){IDLE_TIMEOUT, 0};
        glite_srvbones_set_param(GLITE_SBPARAM_IDLE_TIMEOUT, &to);
+       glite_srvbones_set_param(GLITE_SBPARAM_LOG_REQ_CATEGORY, LOG_CATEGORY_LB_SERVER_REQUEST);
 
        switch (mode) {
                case SERVICE_PROXY:
                char       *et, *ed;
 
                edg_wll_Error(ctx,&et,&ed);
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "[%d]: query_job_indices(): %s: %s, no custom indices available", getpid(), et, ed);
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_DEBUG, "[%d]: query_job_indices(): %s: %s, no custom indices available", getpid(), et, ed);
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d]: query_job_indices(): %s: %s, no custom indices available", getpid(), et, ed);
                free(et);
                free(ed);
        }
                char    *et,*ed;
                edg_wll_Error(ctx,&et,&ed);
 
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "[%d]: query notif indices: %s: %s", getpid(), et, ed);
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_DEBUG, "[%d]: query notif indices: %s: %s", getpid(), et, ed);      
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d]: query notif indices: %s: %s", getpid(), et, ed);
        
                free(et); free(ed);
        }
                        edg_wll_gss_release_cred(&mycred, NULL);
                        mycred = newcred;
                } else { 
-                       glite_common_log(LOG_CATEGORY_SECURITY, LOG_PRIORITY_ERROR, "[%d] reloading credentials failed, using old ones");
+                       glite_common_log(LOG_CATEGORY_SECURITY, LOG_PRIORITY_WARN, "[%d] reloading credentials failed, using old ones");
                }
                break;
        case -1: 
        {
        case NETDB_SUCCESS:
                if (name) 
-                       glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_INFO, "[%d] connection from %s:%d (%s)", getpid(), inet_ntoa(a.sin_addr), ntohs(a.sin_port), name); 
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_INFO, "[%d] connection from %s:%d (%s)", getpid(), inet_ntoa(a.sin_addr), ntohs(a.sin_port), name); 
                free(ctx->connections->serverConnection->peerName);
                ctx->connections->serverConnection->peerName = name;
                name = NULL;
                break;
 
        default:
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_DEBUG, "gethostbyaddr(%s): %s", inet_ntoa(a.sin_addr), hstrerror(h_errno));
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_INFO,"[%d] connection from %s:%d", getpid(), inet_ntoa(a.sin_addr), ntohs(a.sin_port));
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, "gethostbyaddr(%s): %s", inet_ntoa(a.sin_addr), hstrerror(h_errno));
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_INFO,"[%d] connection from %s:%d", getpid(), inet_ntoa(a.sin_addr), ntohs(a.sin_port));
                free(ctx->connections->serverConnection->peerName);
                ctx->connections->serverConnection->peerName = strdup(inet_ntoa(a.sin_addr));
                break;
        gettimeofday(&now, 0);
        if ( decrement_timeout(timeout, conn_start, now) )
        {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR, "gethostbyaddr() timeout"); 
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_WARN, "gethostbyaddr() timeout"); 
                free(name);
 
                return -1;
                        {
                                if ( strcmp(name, server_name))
                                {
-                                       glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR, "different server endpoint names (%s,%s), check DNS PTR records", name, server_name);
+                                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "different server endpoint names (%s,%s), check DNS PTR records", name, server_name);
                                }
                        }
                        else server_name = strdup(name);
                                edg_wll_FreeContext(ctx);
                                return -1;
                        }
-                       glite_common_log(LOG_CATEGORY_SECURITY, LOG_PRIORITY_ERROR, "[%d] %s: GSS error: %s", getpid(), ctx->connections->serverConnection->peerName, ctx->errDesc);
+                       glite_common_log(LOG_CATEGORY_SECURITY, LOG_PRIORITY_WARN, "[%d] %s: GSS error: %s", getpid(), ctx->connections->serverConnection->peerName, ctx->errDesc);
                }
                else
                {
        int err = 0;
 
        if ( glite_gsplugin_init_context(&gsplugin_ctx) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR, 
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, 
                        "Couldn't create gSOAP plugin context");
                 return -1;
         }
 
         if ( !(soap = soap_new()) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
                        "Couldn't create soap environment");
                 goto err;
         }
         soap_init2(soap, SOAP_IO_KEEPALIVE, SOAP_IO_KEEPALIVE);
        if ( soap_set_namespaces(soap, namespaces) ) { 
                 soap_done(soap);
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
                        "Couldn't set soap namespaces");
                 goto err;
         }
        if ( soap_register_plugin_arg(soap, glite_gsplugin, gsplugin_ctx) ) {
                 soap_done(soap);
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
                        "Couldn't set soap namespaces");
                 goto err;
         }
 
        gettimeofday(&conn_start, 0);
        if ( edg_wll_plain_accept(conn, &ctx->connProxy->conn) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
                        "accept");
                edg_wll_FreeContext(ctx);
 
 
        gettimeofday(&now, 0);
        if ( decrement_timeout(timeout, conn_start, now) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_WARN,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN,
                        "edg_wll_plain_accept(): timeout");
                return -1;
        }
        case EEXIST:
        case EDG_WLL_ERROR_NOINDEX:
        case E2BIG:
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN,
                        "[%d] %s (%s)", getpid(), errt, errd);
                break;
        case EINVAL:
        case EDG_WLL_ERROR_PARSE_OK_WITH_EXTRA_FIELDS:
        case EDG_WLL_ERROR_JOBID_FORMAT:
        case EDG_WLL_ERROR_MD5_CLASH:
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN,
                        "[%d] %s (%s)", getpid(), errt, errd);
                /*
                 *      no action for non-fatal errors
 
        gettimeofday(&after, NULL);
        if ( decrement_timeout(timeout, before, after) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_WARN,
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_WARN,
                        "Serving store connection timed out");
                return ETIMEDOUT;
        }
 
        gettimeofday(&after, NULL);
        if ( decrement_timeout(timeout, before, after) ) {
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_WARN,
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_WARN,
                        "Serving store connection timed out");
                
                return ETIMEDOUT;
 
        if ( err ) {
                // soap_print_fault(struct soap *soap, FILE *fd) maybe useful here
-               glite_common_log(LOG_CATEGORY_ACCESS, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_WARN,
                        "[%d] SOAP error (bk_accept_ws)", getpid());
                return ECANCELED;
        }
                asprintf(&dbfail_string1,"%s (%s)",errt,errd);
                free(errt);
                free(errd);
-               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR,
+               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN,
                        "[%d]: %s", getpid(), dbfail_string1);
                free(dbfail_string1);
        }
 
 #include <stdlib.h>
 #include <errno.h>
-#include <syslog.h>
 #include <unistd.h>
 #include <stdio.h>
 
        if (ret == EDG_WLL_ERROR_DB_TRANS_DEADLOCK) {
                glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, 
                        "[%d]: DB deadlock detected. Rolling back transaction "
-                       "and retrying... \n", getpid());
+                       "and retrying...", getpid());
 
                edg_wll_ResetError(ctx);
                return !edg_wll_Rollback(ctx);
        if (ret == EDG_WLL_ERROR_DB_LOST_CONNECTION) {
                glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, 
                        "[%d]: Lost connection to DB. "
-                       "Rolling back transaction and retrying... \n",
+                       "Rolling back transaction and retrying...",
                        getpid());
 
                edg_wll_ResetError(ctx);
 
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
-#include <syslog.h>
 
 #include "glite/lbu/trio.h"
+#include "glite/lbu/log.h"
 #include "get_events.h"
 #include "glite/lb/context-int.h"
 #include "glite/lb/events_parse.h"
        edg_wll_ResetError(ctx);
 
        trio_asprintf(&q, "select ulm from events_flesh where jobid = '%|Ss' and event = %d", jobid, n);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, q);
+
        if ((ret=edg_wll_ExecSQL(ctx,q,&sh)) < 0) goto cleanup;
        if (edg_wll_FetchRow(ctx,sh,1,NULL,&nameval[0]) == 1) {
                //fprintf(stderr, "got ulm: '%s'\n", nameval[0]);
                trio_asprintf(&q,"select name,value from %s "
                                "where jobid = '%|Ss' and event = %d ",
                                tables[t],jobid,n);
+               glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG,
+                       q);
 
                if ((ret=edg_wll_ExecSQL(ctx,q,&sh)) < 0) goto cleanup;
 
 {
        char *e = edg_wll_EventToString(event->any.type);
 
-       fprintf(stderr, "edg_wll_set_event_field: bad field:"
-               "code=\"%s\" name=\"%s\" value=\"%s\"\n",
+       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, 
+               "edg_wll_set_event_field: bad field:"
+               "code=\"%s\" name=\"%s\" value=\"%s\"",
                e, name, value);
        free(e);
        /* XXX edg_wll_Log */
 
 #include <assert.h>
 #include <stdarg.h>
 #include <regex.h>
-#include <syslog.h>
 
 #include "glite/jobid/cjobid.h"
 #include "glite/lbu/trio.h"
 
        else err = edg_wll_http_recv(ctx,&req,&hdr,body,ctx->connections->serverConnection);
 
        if (req)
-               glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, 
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, 
                        LOG4C_PRIORITY_DEBUG, "[%d] request: %s", 
                        getpid(), req);
        else
-               glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, 
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, 
                         LOG4C_PRIORITY_DEBUG, "no request");
        if (body && *body) 
-               glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, 
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, 
                         LOG4C_PRIORITY_DEBUG, "request body:\n%s",*body);
 
        if (!err) {
 
                                        if (!attr[0] || !attr[1]) { unexp() break;}
                                         if (attr[0] && strcmp(attr[0],"state")) { unexp() break;}
                                        XMLCtx->job_conditions[XMLCtx->row][XMLCtx->position].attr_id.state = edg_wll_StringToStat(attr[1]);
-                                       printf("\nchecking time attr\n%s = %s (%d)\n\n", attr[0], attr[1], edg_wll_StringToStat(attr[1]));
+                                       //printf("\nchecking time attr\n%s = %s (%d)\n\n", attr[0], attr[1], edg_wll_StringToStat(attr[1]));
                                }
                                XMLCtx->job_conditions[XMLCtx->row][XMLCtx->position].attr = i+1;
                        }
 
                                        if (!attr[0] || !attr[1]) { unexp() break;}
                                         if (attr[0] && strcmp(attr[0],"state")) { unexp() break;}
                                        XMLCtx->job_conditions[XMLCtx->row][XMLCtx->position].attr_id.state = edg_wll_StringToStat(attr[1]);
-                                       printf("\nchecking time attr\n%s = %s (%d)\n\n", attr[0], attr[1], edg_wll_StringToStat(attr[1]));
+                                       //printf("\nchecking time attr\n%s = %s (%d)\n\n", attr[0], attr[1], edg_wll_StringToStat(attr[1]));
                                }
                                XMLCtx->job_conditions[XMLCtx->row][XMLCtx->position].attr = i+1;
                        }
 
 #include <time.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include <syslog.h>
 #include <errno.h>
 #include <unistd.h>
 #include <assert.h>
 
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include <syslog.h>
 #include <errno.h>
 #include <time.h>
 #include <assert.h>
                                edg_wll_Error(ctx,&et,&ed);
 
                                dbjob = res[2];
-                               fprintf(stderr,"%s event %d: %s (%s)\n",dbjob,n,et,ed);
-                               syslog(LOG_WARNING,"%s event %d: %s (%s)",dbjob,n,et,ed);
+                               glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_WARN, "%s event %d: %s (%s)", dbjob, n, et, ed);
                                free(et); free(ed);
                                edg_wll_ResetError(ctx);
 
 
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
-#include <syslog.h>
 #include <assert.h>
 #include <string.h>
 #include <time.h>
        for (prg.jobs_to_exa=0; request->jobs[prg.jobs_to_exa]; prg.jobs_to_exa++);
        for (i=0; request->jobs[i] && !purge_quit; i++) {
                if (edg_wlc_JobIdParse(request->jobs[i],&job)) {
-                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "%s: parse error\n", request->jobs[i]);
+                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "%s: parse error", request->jobs[i]);
                        prg.parse = 1;
                        prg.jobs_to_exa--;
                }
                else {
                        if (check_strict_jobid(ctx,job)) {
-                               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "%s: not my job\n", request->jobs[i]);
+                               glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "%s: not my job", request->jobs[i]);
                                prg.parse = 1;
                                prg.jobs_to_exa--;
                        }
                        if ( jobtype == EDG_WLL_NUMBER_OF_JOBTYPES) goto rollback;
                        if (get_jobid_suffix(ctx, job, jobtype, &root, &suffix)
                         || get_jobid_prefix(ctx, job, jobtype, &prefix)) {
-                               fprintf(stderr,"[%d] unknown job type of the '%s'.\n", getpid(), dbjob);
-                               syslog(LOG_WARNING,"Warning: unknown job type of the '%s'", dbjob);
+                               glite_common_log(LOG_CATEGORY_CONTROL, 
+                                       LOG_PRIORITY_WARN, 
+                                       "[%d] unknown job type of the '%s'.", 
+                                       getpid(), dbjob);
                                edg_wll_ResetError(ctx);
                        }
                }
                                        
                                        asprintf(&msg,"Warning: erasing job %s that already existed in this LB "
                                                "(reused jobid or corruped DB) (%s: %s)",job_s,et,ed);
-                                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d] %s\n", getpid(), msg);
+                                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d] %s", getpid(), msg);
                                        free(et); free(ed); free(msg); free(job_s);
                                        edg_wll_ResetError(ctx);
                                }
 
 static int stats_remap(edg_wll_Stats *stats)
 {
        int newgrpno = stats->map->grpno;
-       dprintf(("stats_remap: size changed (%d != %d), remap",stats->grpno,newgrpno));
+       glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG,
+               "stats_remap: size changed (%d != %d), remap",
+               stats->grpno, newgrpno);
        munmap(stats->map,(stats->grpno ? stats->grpno : 1) * stats->grpsize);
        stats->map = mmap(NULL,newgrpno * stats->grpsize,
                        PROT_READ|PROT_WRITE,MAP_SHARED,stats->fd,0);
        edg_wll_ResetError(ctx);
 
        glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG,
-               "inc_counter: destination %s, stats %d\n",
+               "inc_counter: destination %s, stats %d",
                jobstat->destination, (int) (stats - (edg_wll_Stats *) default_stats));
 
        if (flock(stats->fd,LOCK_EX)) return edg_wll_SetError(ctx,errno,"flock()");
        }
 
        if (i == stats->grpno) {
-               dprintf(("no match: %s\n",sig));
+               glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG, 
+                       "no match: %s\n",sig);
                edg_wll_SetError(ctx,ENOENT,"no matching group");
                goto cleanup;
        }
                }
 
                glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG,
-                       "search %ld in %ld, %ld\n", *from, afrom, afrom+i);
+                       "search %ld in %ld, %ld", *from, afrom, afrom+i);
 
                if (*from >= afrom && *from < afrom+i) {
                        match += *from - afrom;
 
 #include <string.h>
 #include <assert.h>
 #include <errno.h>
-#include <syslog.h>
 #include <ctype.h>
 
 #include "glite/jobid/strmd5.h"
 #include "glite/lbu/trio.h"
+#include "glite/lbu/log.h"
 
 #include "glite/lb/events_parse.h"
 #include "glite/lb/context-int.h"
        }
 
        trio_asprintf(&stmt,"select userid from jobs where jobid='%|Ss'", jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
        
        if (edg_wll_ExecSQL(ctx,stmt,&sh) < 0 || edg_wll_FetchRow(ctx,sh,1,NULL,&userid) < 0) goto clean;
        if (sh) glite_lbu_FreeStmt(&sh);
                ssrc,e->any.host,
                stamp,e->any.timestamp.tv_usec,
                e->any.level,userid, e->any.seqcode);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,&sh) < 0) goto clean;
        nr = edg_wll_FetchRow(ctx,sh,1,NULL,&dummy);
        trio_asprintf(&stmt,
                "select nevents from jobs "
                "where jobid = '%|Ss'",jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,&sh) < 0 ||
            edg_wll_FetchRow(ctx,sh,1,NULL,&max) < 0) goto clean;
                ssrc,e->any.host,
                stamp,e->any.timestamp.tv_usec,
                now_s, e->any.level,userid, e->any.seqcode);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) goto clean;
        free(stmt); stmt = NULL;
        trio_asprintf(&stmt,
                "update jobs set nevents='%d'"
                "where jobid = '%|Ss'", next+1, jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) goto clean;
        free(stmt); stmt = NULL;
 
        trio_asprintf(&stmt,"insert into users(userid,cert_subj) "
                "values ('%|Ss','%|Ss')",userid,subj);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) {
                if (edg_wll_Error(ctx,NULL,NULL) == EEXIST)
                trio_asprintf(&stmt,"insert into jobs(jobid,dg_jobid,userid,proxy,server,grey) "
                        "values ('%|Ss','%|Ss','%|Ss', '%|Sd', '%|Sd', '%|Sd')",jobid,jobstr,userid,proxy,server,grey);
        }
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
        if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) {
                if (edg_wll_Error(ctx,NULL,NULL) == EEXIST && !update) 
        char *stmt;
 
        trio_asprintf(&stmt,"update jobs set grey='1' where jobid='%|Ss'", jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        edg_wll_ExecSQL(ctx,stmt,NULL); 
 
        free(stmt);
 
 
        trio_asprintf(&q,"select proxy,server,grey from jobs where jobid='%|Ss' for update", unique);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, q);
 
        nar = edg_wll_ExecSQL(ctx,q,&stmt);
        free(q); q = NULL;
                        {
                                trio_asprintf(&q,"select u.cert_subj from jobs j, users u "
                                                        "where j.jobid='%|Ss' and u.userid=j.userid",unique);
+                               glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, q);
 
                                if (edg_wll_ExecSQL(ctx,q,&stmt) < 0
                                        || edg_wll_FetchRow(ctx,stmt,1,NULL,&owner) < 0
                        if ( (!strcmp(res[0],"0") && ctx->isProxy) || (!strcmp(res[1],"0") && !ctx->isProxy) ) {
                                trio_asprintf(&q,"update jobs set server='1', proxy='1' where jobid='%|Ss'",
                                        unique);
+                               glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, q);
                                if (edg_wll_ExecSQL(ctx,q,NULL) < 0) goto err;
                                free(q); q = NULL;
                        }
                        "values ('%|Ss',%d,'%|Ss','%|Ss')",
                        strlen(f[i].val) <= SHORT_LEN ? "short_fields" : "long_fields",
                        jobid,no,f[i].key,f[i].val);
+               glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
 
                if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) err = edg_wll_Error(ctx,NULL,NULL);
                free(stmt);
                trio_asprintf(&stmt,"insert into short_fields(jobid,event,name,value) "
                        "values ('%|Ss',%d,'SRC_INSTANCE','%|Ss')",
                        jobid,no,e->any.src_instance);
+               glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
                if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) err = edg_wll_Error(ctx,NULL,NULL);
                free(stmt);
        }
 #else
        if (!ulm) ulm = edg_wll_UnparseEvent(ctx, e);
        trio_asprintf(&stmt, "insert into events_flesh (jobid, event, ulm) values ('%|Ss', %d, '%|Ss')", jobid, no, ulm);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        if (edg_wll_ExecSQL(ctx,stmt,NULL) < 0) err = edg_wll_Error(ctx,NULL,NULL);
 #endif
 
 
        trio_asprintf(&q,"select u.cert_subj from jobs j, users u "
                                "where j.jobid='%|Ss' and u.userid=j.userid",jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, q);
 
        if (edg_wll_ExecSQL(ctx,q,&stmt) < 0
                || edg_wll_FetchRow(ctx,stmt,1,NULL,&owner) < 0
        /* get userid of parent job */
        jobid = edg_wlc_JobIdGetUnique(e->jobId);
        trio_asprintf(&stmt,"select userid from jobs where jobid='%|Ss'", jobid);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        if (edg_wll_ExecSQL(ctx,stmt,&sh) < 0 || edg_wll_FetchRow(ctx,sh,1,NULL,&userid) < 0) goto err;
 
        for (i=0; i<e->nsubjobs; i++) {
 
                if (err) {
                        job_s = edg_wlc_JobIdUnparse(subjobs[i]);
-                       fprintf(stderr,"%s: %s (%s)\n",job_s,et,ed);
-                       syslog(LOG_ERR,"%s: %s (%s)",job_s,et,ed);
+                       glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "%s: %s (%s)", job_s, et, ed);
                        free(job_s); free(et); free(ed);
                        edg_wll_ResetError(ctx);
                }
        trio_asprintf(&stmt,
                "delete from short_fields where jobid='%|Ss' and event=%d",
                jobid,event);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        edg_wll_ExecSQL(ctx,stmt,NULL);
        free(stmt);
 
        trio_asprintf(&stmt,
                "delete from long_fields where jobid='%|Ss' and event=%d",
                jobid,event);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        edg_wll_ExecSQL(ctx,stmt,NULL);
        free(stmt);
 
        trio_asprintf(&stmt,
                "delete from events_flesh where jobid='%|Ss' and event=%d",
                jobid,event);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        edg_wll_ExecSQL(ctx,stmt,NULL);
        free(stmt);
 
        trio_asprintf(&stmt,
                "delete from events where jobid='%|Ss' and event=%d",
                jobid,event);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
+
        edg_wll_ExecSQL(ctx,stmt,NULL);
        free (stmt);
 
 
        else
 #endif
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,buf);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,buf);
        handle_il_message(ctx,buf);
        free(buf);
 
 
        edg_wll_JobStat s;
        int             i,flags;
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        if (!in) return SOAP_FAULT;
 
                        cjobid = edg_wlc_JobIdUnparse(j);
                        cflags = edg_wll_stat_flags_to_string(flags);
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS,
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST,
                                LOG_PRIORITY_DEBUG,
                                "[%d] \n\t<flags>%s</flags>\n\t<jobId>%s</jobId>\n",
                                getpid(), cflags, cjobid);
        edg_wll_JobStat s;
        int             i,flags;
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        if (!in) return SOAP_FAULT;
 
                        cjobid = edg_wlc_JobIdUnparse(j);
                        cflags = edg_wll_stat_flags_to_string(flags);
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS,
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST,
                                LOG_PRIORITY_DEBUG,
-                               "[%d] \n\t<flags>%s</flags>\n\t<jobId>%s</jobId>\n",
+                               "[%d] \t<flags>%s</flags>\n\t<jobId>%s</jobId>",
                                getpid(), cflags, cjobid);
                        free(cjobid);
                        free(cflags);
 
        struct _lbe__GetVersion *in,
        struct _lbe__GetVersionResponse *out)
 {
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, 
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, 
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        out->version = soap_strdup(soap, VERSION);
        int     flags;
 
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        if ( edg_wlc_JobIdParse(in->jobid, &j) )
 
                cjobid = edg_wlc_JobIdUnparse(j);
                cflags = edg_wll_stat_flags_to_string(flags);
-               glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, 
+               glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, 
                        LOG_PRIORITY_DEBUG, 
-                       "[%d] \n\t<flags>%s</flags>\n\t<jobId>%s</jobId>\n",
+                       "[%d] \t<flags>%s</flags>\n\t<jobId>%s</jobId>",
                        getpid(), cflags, cjobid);
                free(cjobid);
                free(cflags);
        int                ret = SOAP_FAULT;
 
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        out->states = soap_malloc(soap, sizeof(*out->states));
                if (edg_wll_QueryJobsRequestToXML(ctx, 
                                (const edg_wll_QueryRec **) conditions, 
                                flags, &message)) {
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), "edg_wll_QueryJobsRequestToXML() returned error");
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), "edg_wll_QueryJobsRequestToXML() returned error");
                }
                else {
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, "[%d] \n%s\n", getpid(), message);
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), message);
                }
                free(message);
        }
        edg_wll_JobStat *states;
 
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, 
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, 
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        ctx = (edg_wll_Context) glite_gsplugin_get_udata(soap);
        int                     ret = SOAP_OK;
 
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG,
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG,
                "[%d] WS call %s", getpid(), __FUNCTION__);
 
        edg_wll_ResetError(ctx);
                                (const edg_wll_QueryRec **) job_conditions, 
                                (const edg_wll_QueryRec **) event_conditions,
                                &message)) {
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), "edg_wll_QueryEventsRequestToXML() returned error");
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), "edg_wll_QueryEventsRequestToXML() returned error");
                }
                else {
-                       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, "[%d] \n%s\n", getpid(), message);
+                       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, "[%d] %s", getpid(), message);
                }
                free(message);
        }
        edg_wll_NotifId         nid = NULL;
        int                     ret = SOAP_OK;
 
-       glite_common_log(LOG_CATEGORY_LB_SERVER_ACCESS, LOG_PRIORITY_DEBUG, 
-               "[%d] WS call %s\n", getpid(), __FUNCTION__);
+       glite_common_log(LOG_CATEGORY_LB_SERVER_REQUEST, LOG_PRIORITY_DEBUG, 
+               "[%d] WS call %s", getpid(), __FUNCTION__);
 
        edg_wll_ResetError(ctx);
        if ( edg_wll_SoapToQueryCondsExt(in->conditions, in->__sizeconditions, &conditions) )