Lines Matching refs:lctx
46 #define VALID_CONTEXT(lctx) ISC_MAGIC_VALID(lctx, LCTX_MAGIC)
117 isc_log_t * lctx;
240 isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category,
268 isc_log_t *lctx;
276 lctx = isc_mem_get(mctx, sizeof(*lctx));
277 if (lctx != NULL) {
278 lctx->mctx = mctx;
279 lctx->categories = NULL;
280 lctx->category_count = 0;
281 lctx->modules = NULL;
282 lctx->module_count = 0;
283 lctx->debug_level = 0;
285 ISC_LIST_INIT(lctx->messages);
287 result = isc_mutex_init(&lctx->lock);
289 isc_mem_put(mctx, lctx, sizeof(*lctx));
297 * If either fails, the lctx is destroyed and not returned
300 lctx->magic = LCTX_MAGIC;
302 isc_log_registercategories(lctx, isc_categories);
303 isc_log_registermodules(lctx, isc_modules);
304 result = isc_logconfig_create(lctx, &lcfg);
313 lctx->logconfig = lcfg;
315 *lctxp = lctx;
322 if (lctx != NULL)
323 isc_log_destroy(&lctx);
330 isc_logconfig_create(isc_log_t *lctx, isc_logconfig_t **lcfgp) {
337 REQUIRE(VALID_CONTEXT(lctx));
339 lcfg = isc_mem_get(lctx->mctx, sizeof(*lcfg));
342 lcfg->lctx = lctx;
422 isc_logconfig_get(isc_log_t *lctx) {
423 REQUIRE(VALID_CONTEXT(lctx));
425 ENSURE(lctx->logconfig != NULL);
427 return (lctx->logconfig);
431 isc_logconfig_use(isc_log_t *lctx, isc_logconfig_t *lcfg) {
435 REQUIRE(VALID_CONTEXT(lctx));
437 REQUIRE(lcfg->lctx == lctx);
440 * Ensure that lcfg->channellist_count == lctx->category_count.
448 LOCK(&lctx->lock);
450 old_cfg = lctx->logconfig;
451 lctx->logconfig = lcfg;
453 UNLOCK(&lctx->lock);
462 isc_log_t *lctx;
469 lctx = *lctxp;
470 mctx = lctx->mctx;
472 if (lctx->logconfig != NULL) {
473 lcfg = lctx->logconfig;
474 lctx->logconfig = NULL;
478 DESTROYLOCK(&lctx->lock);
480 while ((message = ISC_LIST_HEAD(lctx->messages)) != NULL) {
481 ISC_LIST_UNLINK(lctx->messages, message, link);
487 lctx->buffer[0] = '\0';
488 lctx->debug_level = 0;
489 lctx->categories = NULL;
490 lctx->category_count = 0;
491 lctx->modules = NULL;
492 lctx->module_count = 0;
493 lctx->mctx = NULL;
494 lctx->magic = 0;
496 isc_mem_put(mctx, lctx, sizeof(*lctx));
518 REQUIRE(lcfg->lctx != NULL && lcfg->lctx->logconfig != lcfg);
520 mctx = lcfg->lctx->mctx;
556 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
568 isc_log_registercategories(isc_log_t *lctx, isc_logcategory_t categories[]) {
571 REQUIRE(VALID_CONTEXT(lctx));
582 if (lctx->categories == NULL)
583 lctx->categories = categories;
590 for (catp = lctx->categories; catp->name != NULL; )
608 catp->id = lctx->category_count++;
612 isc_log_categorybyname(isc_log_t *lctx, const char *name) {
615 REQUIRE(VALID_CONTEXT(lctx));
618 for (catp = lctx->categories; catp->name != NULL; )
635 isc_log_registermodules(isc_log_t *lctx, isc_logmodule_t modules[]) {
638 REQUIRE(VALID_CONTEXT(lctx));
649 if (lctx->modules == NULL)
650 lctx->modules = modules;
657 for (modp = lctx->modules; modp->name != NULL; )
675 modp->id = lctx->module_count++;
679 isc_log_modulebyname(isc_log_t *lctx, const char *name) {
682 REQUIRE(VALID_CONTEXT(lctx));
685 for (modp = lctx->modules; modp->name != NULL; )
721 mctx = lcfg->lctx->mctx;
791 isc_log_t *lctx;
799 lctx = lcfg->lctx;
801 REQUIRE(category == NULL || category->id < lctx->category_count);
802 REQUIRE(module == NULL || module->id < lctx->module_count);
820 for (i = 0; i < lctx->category_count; i++) {
830 isc_log_write(isc_log_t *lctx, isc_logcategory_t *category,
840 isc_log_doit(lctx, category, module, level, ISC_FALSE,
846 isc_log_vwrite(isc_log_t *lctx, isc_logcategory_t *category,
853 isc_log_doit(lctx, category, module, level, ISC_FALSE,
858 isc_log_write1(isc_log_t *lctx, isc_logcategory_t *category,
868 isc_log_doit(lctx, category, module, level, ISC_TRUE,
874 isc_log_vwrite1(isc_log_t *lctx, isc_logcategory_t *category,
881 isc_log_doit(lctx, category, module, level, ISC_TRUE,
886 isc_log_iwrite(isc_log_t *lctx, isc_logcategory_t *category,
898 isc_log_doit(lctx, category, module, level, ISC_FALSE,
904 isc_log_ivwrite(isc_log_t *lctx, isc_logcategory_t *category,
912 isc_log_doit(lctx, category, module, level, ISC_FALSE,
917 isc_log_iwrite1(isc_log_t *lctx, isc_logcategory_t *category,
929 isc_log_doit(lctx, category, module, level, ISC_TRUE,
935 isc_log_ivwrite1(isc_log_t *lctx, isc_logcategory_t *category,
943 isc_log_doit(lctx, category, module, level, ISC_TRUE,
948 isc_log_setcontext(isc_log_t *lctx) {
949 isc_lctx = lctx;
953 isc_log_setdebuglevel(isc_log_t *lctx, unsigned int level) {
956 REQUIRE(VALID_CONTEXT(lctx));
958 LOCK(&lctx->lock);
960 lctx->debug_level = level;
964 if (lctx->debug_level == 0)
965 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
974 UNLOCK(&lctx->lock);
978 isc_log_getdebuglevel(isc_log_t *lctx) {
979 REQUIRE(VALID_CONTEXT(lctx));
981 return (lctx->debug_level);
1004 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
1005 lcfg->tag = isc_mem_strdup(lcfg->lctx->mctx, tag);
1011 isc_mem_free(lcfg->lctx->mctx, lcfg->tag);
1032 isc_log_closefilelogs(isc_log_t *lctx) {
1035 REQUIRE(VALID_CONTEXT(lctx));
1037 LOCK(&lctx->lock);
1038 for (channel = ISC_LIST_HEAD(lctx->logconfig->channels);
1047 UNLOCK(&lctx->lock);
1059 isc_log_t *lctx;
1064 lctx = lcfg->lctx;
1066 REQUIRE(category_id < lctx->category_count);
1067 REQUIRE(module == NULL || module->id < lctx->module_count);
1071 * Ensure lcfg->channellist_count == lctx->category_count.
1077 new_item = isc_mem_get(lctx->mctx, sizeof(*new_item));
1108 isc_log_t *lctx;
1113 lctx = lcfg->lctx;
1115 REQUIRE(lctx->category_count != 0);
1117 if (lctx->category_count == lcfg->channellist_count)
1120 bytes = lctx->category_count * sizeof(ISC_LIST(isc_logchannellist_t));
1122 lists = isc_mem_get(lctx->mctx, bytes);
1133 isc_mem_put(lctx->mctx, lcfg->channellists, bytes);
1137 lcfg->channellist_count = lctx->category_count;
1377 isc_log_wouldlog(isc_log_t *lctx, int level) {
1395 if (lctx == NULL || lctx->logconfig == NULL)
1398 return (ISC_TF(level <= lctx->logconfig->highest_level ||
1399 (lctx->logconfig->dynamic &&
1400 level <= lctx->debug_level)));
1404 isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category,
1422 REQUIRE(lctx == NULL || VALID_CONTEXT(lctx));
1433 if (lctx == NULL)
1436 REQUIRE(category->id < lctx->category_count);
1437 REQUIRE(module->id < lctx->module_count);
1439 if (! isc_log_wouldlog(lctx, level))
1450 LOCK(&lctx->lock);
1452 lctx->buffer[0] = '\0';
1454 lcfg = lctx->logconfig;
1500 lctx->debug_level == 0)
1504 if (lctx->debug_level < level)
1539 if (lctx->buffer[0] == '\0') {
1540 (void)vsnprintf(lctx->buffer, sizeof(lctx->buffer),
1568 message =ISC_LIST_HEAD(lctx->messages);
1588 ISC_LIST_UNLINK(lctx->messages,
1591 isc_mem_put(lctx->mctx,
1604 if (strcmp(lctx->buffer, message->text)
1611 UNLOCK(&lctx->lock);
1622 new = isc_mem_get(lctx->mctx,
1624 strlen(lctx->buffer) + 1);
1631 strcpy(new->text, lctx->buffer);
1635 ISC_LIST_APPEND(lctx->messages,
1709 lctx->buffer);
1752 lctx->buffer);
1762 UNLOCK(&lctx->lock);