log.h revision ec5347e2c775f027573ce5648b910361aa926c01
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User/*
59602f2a7c4e4809941583bed3e94cd26e628f1aTinderbox User * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater * Copyright (C) 1999-2001, 2003 Internet Software Consortium.
c78c39caab4cf8b5daefc9c65878f7f5ed3eb7a0Tinderbox User *
f536382c59dd492a14667b753816d920f9981f1cTinderbox User * Permission to use, copy, modify, and/or distribute this software for any
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews * purpose with or without fee is hereby granted, provided that the above
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews * copyright notice and this permission notice appear in all copies.
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User *
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
287a6a8f9040dc43560cd69cddf83bfc0f53b76fTinderbox User * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
8de3f14f1c300c3e1ed99084cc03485b42c92bf1Tinderbox User * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
e5a6871cd0635ecdb2bf792316a2d8c53206f4b2Tinderbox User * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
950d203b64f512b85fcc093ee1e9e3e531a1aea3Tinderbox User * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User * PERFORMANCE OF THIS SOFTWARE.
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews */
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews/* $Id: log.h,v 1.42 2007/06/18 23:47:42 tbox Exp $ */
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont/*! \file dns/log.h
d5637bdbb931ff79fced3d4858d83212ea58ed15Tinderbox User * \author Principal Authors: DCL */
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#ifndef DNS_LOG_H
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont#define DNS_LOG_H 1
d5637bdbb931ff79fced3d4858d83212ea58ed15Tinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews#include <isc/lang.h>
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#include <isc/log.h>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox UserLIBDNS_EXTERNAL_DATA extern isc_log_t *dns_lctx;
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark AndrewsLIBDNS_EXTERNAL_DATA extern isc_logcategory_t dns_categories[];
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserLIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#define DNS_LOGCATEGORY_NOTIFY (&dns_categories[0])
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews#define DNS_LOGCATEGORY_DATABASE (&dns_categories[1])
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews#define DNS_LOGCATEGORY_SECURITY (&dns_categories[2])
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User/* DNS_LOGCATEGORY_CONFIG superseded by CFG_LOGCATEGORY_CONFIG */
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGCATEGORY_DNSSEC (&dns_categories[4])
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#define DNS_LOGCATEGORY_RESOLVER (&dns_categories[5])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGCATEGORY_XFER_IN (&dns_categories[6])
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#define DNS_LOGCATEGORY_XFER_OUT (&dns_categories[7])
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews#define DNS_LOGCATEGORY_DISPATCH (&dns_categories[8])
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User#define DNS_LOGCATEGORY_LAME_SERVERS (&dns_categories[9])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGCATEGORY_DELEGATION_ONLY (&dns_categories[10])
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User#define DNS_LOGCATEGORY_EDNS_DISABLED (&dns_categories[11])
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt/* Backwards compatibility. */
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User#define DNS_LOGCATEGORY_GENERAL ISC_LOGCATEGORY_GENERAL
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#define DNS_LOGMODULE_DB (&dns_modules[0])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_RBTDB (&dns_modules[1])
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont#define DNS_LOGMODULE_RBTDB64 (&dns_modules[2])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_RBT (&dns_modules[3])
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#define DNS_LOGMODULE_RDATA (&dns_modules[4])
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User#define DNS_LOGMODULE_MASTER (&dns_modules[5])
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews#define DNS_LOGMODULE_MESSAGE (&dns_modules[6])
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt#define DNS_LOGMODULE_CACHE (&dns_modules[7])
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#define DNS_LOGMODULE_CONFIG (&dns_modules[8])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_RESOLVER (&dns_modules[9])
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont#define DNS_LOGMODULE_ZONE (&dns_modules[10])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_JOURNAL (&dns_modules[11])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_ADB (&dns_modules[12])
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater#define DNS_LOGMODULE_XFER_IN (&dns_modules[13])
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews#define DNS_LOGMODULE_XFER_OUT (&dns_modules[14])
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User#define DNS_LOGMODULE_ACL (&dns_modules[15])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_VALIDATOR (&dns_modules[16])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_DISPATCH (&dns_modules[17])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_REQUEST (&dns_modules[18])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_MASTERDUMP (&dns_modules[19])
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews#define DNS_LOGMODULE_TSIG (&dns_modules[20])
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User#define DNS_LOGMODULE_TKEY (&dns_modules[21])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_SDB (&dns_modules[22])
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater#define DNS_LOGMODULE_DIFF (&dns_modules[23])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_HINTS (&dns_modules[24])
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark Andrews#define DNS_LOGMODULE_ACACHE (&dns_modules[25])
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#define DNS_LOGMODULE_DLZ (&dns_modules[26])
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserISC_LANG_BEGINDECLS
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox Uservoid
2ae159b376dac23870d8005563c585acf85a4b5aEvan Huntdns_log_init(isc_log_t *lctx);
294e9d4c34462d29a3e766c88f452b46aeb3702fTinderbox User/*%
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User * Make the libdns categories and modules available for use with the
4c6bae917bec70e1fc4d1b761a9765075af78441Tinderbox User * ISC logging library.
294e9d4c34462d29a3e766c88f452b46aeb3702fTinderbox User *
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt * Requires:
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt *\li lctx is a valid logging context.
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt *
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews *\li dns_log_init() is called only once.
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User *
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt * Ensures:
7cc0a5d21ef046bfd630c4769943d896a7d7472cTinderbox User * \li The catgories and modules defined above are available for
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews * use by isc_log_usechannnel() and isc_log_write().
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews */
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox User
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox Uservoid
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsdns_log_setcontext(isc_log_t *lctx);
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User/*%
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews * Make the libdns library use the provided context for logging internal
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User * messages.
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews *
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews * Requires:
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User *\li lctx is a valid logging context.
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews */
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User
827f8cccb5280f4da66c46186e792d1cb9d73503Mark AndrewsISC_LANG_ENDDECLS
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#endif /* DNS_LOG_H */
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson