log.h revision d4edcfe5eb6862ff4d5922e974e509d1f6cdf76f
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence/*
7d32c065c7bb56f281651ae3dd2888f32ce4f1d9Bob Halley * Copyright (C) 1999, 2000 Internet Software Consortium.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * Permission to use, copy, modify, and distribute this software for any
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * purpose with or without fee is hereby granted, provided that the above
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * copyright notice and this permission notice appear in all copies.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * SOFTWARE.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
d4edcfe5eb6862ff4d5922e974e509d1f6cdf76fBrian Wellington/* $Id: log.h,v 1.21 2000/06/23 01:51:18 bwelling Exp $ */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence/* Principal Authors: DCL */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#ifndef DNS_LOG_H
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOG_H 1
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
b09983678f5d116d3c8387aaeab4f2dc4deb0454David Lawrence#include <isc/lang.h>
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#include <isc/log.h>
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
fc80027fb54b501cdd88461bf879d078259e0226David Lawrenceextern isc_log_t *dns_lctx;
fc80027fb54b501cdd88461bf879d078259e0226David Lawrenceextern isc_logcategory_t dns_categories[];
fc80027fb54b501cdd88461bf879d078259e0226David Lawrenceextern isc_logmodule_t dns_modules[];
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
5fe5a0c02634eaadfcbc3528bf2c184557110a3bAndreas Gustafsson#define DNS_LOGCATEGORY_NOTIFY (&dns_categories[0])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGCATEGORY_DATABASE (&dns_categories[1])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGCATEGORY_SECURITY (&dns_categories[2])
249aa1914b5462a77f24c4a8dc9a1b9f0ff8ee5fJames Brister#define DNS_LOGCATEGORY_CONFIG (&dns_categories[3])
230bc05e7e4a6ba7fa4ee396048ab669552dcbe2Andreas Gustafsson#define DNS_LOGCATEGORY_DNSSEC (&dns_categories[4])
2c2cda0045ec97d0db445ed777411930f27c0dd0Bob Halley#define DNS_LOGCATEGORY_RESOLVER (&dns_categories[5])
81ae5e1ae678320e46342d4bbb71bfb81227a248Andreas Gustafsson#define DNS_LOGCATEGORY_XFER_IN (&dns_categories[6])
81ae5e1ae678320e46342d4bbb71bfb81227a248Andreas Gustafsson#define DNS_LOGCATEGORY_XFER_OUT (&dns_categories[7])
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff#define DNS_LOGCATEGORY_DISPATCH (&dns_categories[8])
230bc05e7e4a6ba7fa4ee396048ab669552dcbe2Andreas Gustafsson
5fe5a0c02634eaadfcbc3528bf2c184557110a3bAndreas Gustafsson/* Backwards compatibility. */
5fe5a0c02634eaadfcbc3528bf2c184557110a3bAndreas Gustafsson#define DNS_LOGCATEGORY_GENERAL ISC_LOGCATEGORY_GENERAL
5fe5a0c02634eaadfcbc3528bf2c184557110a3bAndreas Gustafsson
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_DB (&dns_modules[0])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_RBTDB (&dns_modules[1])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_RBTDB64 (&dns_modules[2])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_RBT (&dns_modules[3])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_RDATA (&dns_modules[4])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_MASTER (&dns_modules[5])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_MESSAGE (&dns_modules[6])
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#define DNS_LOGMODULE_CACHE (&dns_modules[7])
249aa1914b5462a77f24c4a8dc9a1b9f0ff8ee5fJames Brister#define DNS_LOGMODULE_CONFIG (&dns_modules[8])
2c2cda0045ec97d0db445ed777411930f27c0dd0Bob Halley#define DNS_LOGMODULE_RESOLVER (&dns_modules[9])
70f6053bd1c18f0a0ebe5b52c8ddbf464e92a1c5Mark Andrews#define DNS_LOGMODULE_ZONE (&dns_modules[10])
61ba96e2f90930c7dfde73e05ac6d2c5a611afa7Andreas Gustafsson#define DNS_LOGMODULE_JOURNAL (&dns_modules[11])
cfec676d095c14a8f79bb84939d74f22272309c6Michael Graff#define DNS_LOGMODULE_ADB (&dns_modules[12])
81ae5e1ae678320e46342d4bbb71bfb81227a248Andreas Gustafsson#define DNS_LOGMODULE_XFER_IN (&dns_modules[13])
81ae5e1ae678320e46342d4bbb71bfb81227a248Andreas Gustafsson#define DNS_LOGMODULE_XFER_OUT (&dns_modules[14])
6017f424ee3c02d7f22132c77576ea38542fa949Andreas Gustafsson#define DNS_LOGMODULE_ACL (&dns_modules[15])
230bc05e7e4a6ba7fa4ee396048ab669552dcbe2Andreas Gustafsson#define DNS_LOGMODULE_VALIDATOR (&dns_modules[16])
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff#define DNS_LOGMODULE_DISPATCH (&dns_modules[17])
8b61d2012063306528286680bd9f086fa868d86eMark Andrews#define DNS_LOGMODULE_REQUEST (&dns_modules[18])
84fcfe530b60140f3f95f1d3894358d8c8ba4391Andreas Gustafsson#define DNS_LOGMODULE_MASTERDUMP (&dns_modules[19])
d4edcfe5eb6862ff4d5922e974e509d1f6cdf76fBrian Wellington#define DNS_LOGMODULE_TSIG (&dns_modules[20])
d4edcfe5eb6862ff4d5922e974e509d1f6cdf76fBrian Wellington#define DNS_LOGMODULE_TKEY (&dns_modules[21])
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
b09983678f5d116d3c8387aaeab4f2dc4deb0454David LawrenceISC_LANG_BEGINDECLS
b09983678f5d116d3c8387aaeab4f2dc4deb0454David Lawrence
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrencevoid
fc80027fb54b501cdd88461bf879d078259e0226David Lawrencedns_log_init(isc_log_t *lctx);
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence/*
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Make the libdns categories and modules available for use with the
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * ISC logging library.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * Requires:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * lctx is a valid logging context.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * dns_log_init() is called only once.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * Ensures:
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence * The catgories and modules defined above are available for
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence * use by isc_log_usechannnel() and isc_log_write().
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graffvoid
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graffdns_log_setcontext(isc_log_t *lctx);
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff/*
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Make the libdns library use the provided context for logging internal
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * messages.
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff *
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Requires:
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * lctx is a valid logging context.
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff *
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * dns_log_setcontext() is called only once.
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff */
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff
fc80027fb54b501cdd88461bf879d078259e0226David LawrenceISC_LANG_ENDDECLS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#endif /* DNS_LOG_H */