log.h revision 6eb6af6732194157224e2b8d81a02a9e80c4530a
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence/*
304a539c5966697827f2a021303e634aee98503dAutomatic Updater * Copyright (C) 2004-2007, 2009, 2011 Internet Systems Consortium, Inc. ("ISC")
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * Copyright (C) 1999-2001, 2003 Internet Software Consortium.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence *
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater * Permission to use, copy, modify, and/or 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.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence *
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * PERFORMANCE OF THIS SOFTWARE.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
304a539c5966697827f2a021303e634aee98503dAutomatic Updater/* $Id: log.h,v 1.47 2011/10/13 22:48:24 tbox Exp $ */
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
29747dfe5e073a299b3681e01f5c55540f8bfed7Mark Andrews/*! \file dns/log.h
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein * \author 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
f621719829356f27e831507b75e88e8a655e48d8Danny MayerLIBDNS_EXTERNAL_DATA extern isc_log_t *dns_lctx;
f621719829356f27e831507b75e88e8a655e48d8Danny MayerLIBDNS_EXTERNAL_DATA extern isc_logcategory_t dns_categories[];
f621719829356f27e831507b75e88e8a655e48d8Danny MayerLIBDNS_EXTERNAL_DATA extern 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])
024face21cdfbfc7a862a3be061e6780533ef755Andreas Gustafsson/* DNS_LOGCATEGORY_CONFIG superseded by CFG_LOGCATEGORY_CONFIG */
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])
ff7f1dc0393cfc8a033be7e94aa56cd57c97d174Andreas Gustafsson#define DNS_LOGCATEGORY_LAME_SERVERS (&dns_categories[9])
4607e7a9b8dfb1b41c70e51c2b603daaf22cf302Mark Andrews#define DNS_LOGCATEGORY_DELEGATION_ONLY (&dns_categories[10])
bc6af069c80ca33a5619d71d57859724cab1f4c4Mark Andrews#define DNS_LOGCATEGORY_EDNS_DISABLED (&dns_categories[11])
9fee08f655527a5dd849b171daeeee1dbbccca76Vernon Schryver#define DNS_LOGCATEGORY_RPZ (&dns_categories[12])
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])
eac8e1d5fcccaa2af0041861f2d1edbaea234329Andreas Gustafsson#define DNS_LOGMODULE_SDB (&dns_modules[22])
911ed0d3bee586b3bec42cb6c376d5cc6c0e1e24Brian Wellington#define DNS_LOGMODULE_DIFF (&dns_modules[23])
73ac1894ea64bc50aff7406872d0e9c5df6d9cf6Mark Andrews#define DNS_LOGMODULE_HINTS (&dns_modules[24])
d0eb2cc33c5db3366a16b1cb0abcca6ec7c8ee3cTatuya JINMEI 神明達哉#define DNS_LOGMODULE_ACACHE (&dns_modules[25])
03e200df5dc283f24a6a349f0b31d3eab26da893Mark Andrews#define DNS_LOGMODULE_DLZ (&dns_modules[26])
4e55893d307162770fbd7e0967043f0aef9d7583Evan Hunt#define DNS_LOGMODULE_DNSSEC (&dns_modules[27])
6eb6af6732194157224e2b8d81a02a9e80c4530aMark Andrews#define DNS_LOGMODULE_CRYPTO (&dns_modules[28])
20c266cbc999c724e03e6edd437fb4181b92f095Michael Graff
b09983678f5d116d3c8387aaeab4f2dc4deb0454David LawrenceISC_LANG_BEGINDECLS
b09983678f5d116d3c8387aaeab4f2dc4deb0454David Lawrence
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrencevoid
fc80027fb54b501cdd88461bf879d078259e0226David Lawrencedns_log_init(isc_log_t *lctx);
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*%
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Make the libdns categories and modules available for use with the
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * ISC logging library.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * Requires:
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein *\li lctx is a valid logging context.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein *\li dns_log_init() is called only once.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence *
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence * Ensures:
45b4efd07f8d0ee11e4695900ac9ac30ec0570c1Francis Dupont * \li The categories 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);
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein/*%
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Make the libdns library use the provided context for logging internal
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * messages.
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff *
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff * Requires:
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein *\li lctx is a valid logging context.
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff */
c90f5e8d1edbd5c277f2ee320167a12a30ba7c7bMichael Graff
fc80027fb54b501cdd88461bf879d078259e0226David LawrenceISC_LANG_ENDDECLS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence#endif /* DNS_LOG_H */