mirror of
https://github.com/matrix-construct/construct
synced 2024-11-16 15:00:51 +01:00
ircd::ctx: Create and use log facility.
This commit is contained in:
parent
ce0d974868
commit
b687d63169
2 changed files with 18 additions and 11 deletions
|
@ -43,6 +43,7 @@ namespace ircd::ctx
|
||||||
|
|
||||||
IRCD_OVERLOAD(threadsafe)
|
IRCD_OVERLOAD(threadsafe)
|
||||||
|
|
||||||
|
extern log::log log;
|
||||||
extern const std::list<ctx *> &ctxs; // List of all ctx instances
|
extern const std::list<ctx *> &ctxs; // List of all ctx instances
|
||||||
|
|
||||||
const uint64_t &id(const ctx &); // Unique ID for context
|
const uint64_t &id(const ctx &); // Unique ID for context
|
||||||
|
|
28
ircd/ctx.cc
28
ircd/ctx.cc
|
@ -41,6 +41,12 @@ ircd::ctx::ctxs
|
||||||
ctx::ctx::list
|
ctx::ctx::list
|
||||||
};
|
};
|
||||||
|
|
||||||
|
decltype(ircd::ctx::log)
|
||||||
|
ircd::ctx::log
|
||||||
|
{
|
||||||
|
"ctx"
|
||||||
|
};
|
||||||
|
|
||||||
/// Monotonic ctx id counter state. This counter is incremented for each
|
/// Monotonic ctx id counter state. This counter is incremented for each
|
||||||
/// newly created context.
|
/// newly created context.
|
||||||
decltype(ircd::ctx::ctx::id_ctr)
|
decltype(ircd::ctx::ctx::id_ctr)
|
||||||
|
@ -119,7 +125,7 @@ catch(const std::exception &e)
|
||||||
{
|
{
|
||||||
log::critical
|
log::critical
|
||||||
{
|
{
|
||||||
"ctx('%s' id:%u): unhandled: %s",
|
log, "ctx('%s' id:%u): unhandled: %s",
|
||||||
name,
|
name,
|
||||||
id,
|
id,
|
||||||
e.what()
|
e.what()
|
||||||
|
@ -129,7 +135,7 @@ catch(...)
|
||||||
{
|
{
|
||||||
log::critical
|
log::critical
|
||||||
{
|
{
|
||||||
"ctx('%s' id:%u): unexpected",
|
log, "ctx('%s' id:%u): unexpected",
|
||||||
name,
|
name,
|
||||||
id
|
id
|
||||||
};
|
};
|
||||||
|
@ -246,7 +252,7 @@ catch(const boost::system::system_error &e)
|
||||||
{
|
{
|
||||||
log::error
|
log::error
|
||||||
{
|
{
|
||||||
"ctx::wake(%p): %s", this, e.what()
|
log, "ctx::wake(%p): %s", this, e.what()
|
||||||
};
|
};
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -895,7 +901,7 @@ noexcept
|
||||||
const ulong &threshold{prof::settings::slice_warning};
|
const ulong &threshold{prof::settings::slice_warning};
|
||||||
log::dwarning
|
log::dwarning
|
||||||
{
|
{
|
||||||
"context '%s' id:%lu watchdog: timeslice excessive; lim:%lu this:%lu pct:%.2lf :%s",
|
log, "context '%s' id:%lu watchdog: timeslice excessive; lim:%lu this:%lu pct:%.2lf :%s",
|
||||||
name(cur()),
|
name(cur()),
|
||||||
id(cur()),
|
id(cur()),
|
||||||
threshold,
|
threshold,
|
||||||
|
@ -1338,7 +1344,7 @@ ircd::ctx::pool::operator()(closure closure)
|
||||||
if(!avail() && q.size() > size_t(opt->queue_max_soft) && opt->queue_max_dwarning)
|
if(!avail() && q.size() > size_t(opt->queue_max_soft) && opt->queue_max_dwarning)
|
||||||
log::dwarning
|
log::dwarning
|
||||||
{
|
{
|
||||||
"pool(%p '%s') ctx(%p): size:%zu active:%zu queue:%zu exceeded soft max:%zu",
|
log, "pool(%p '%s') ctx(%p): size:%zu active:%zu queue:%zu exceeded soft max:%zu",
|
||||||
this,
|
this,
|
||||||
name,
|
name,
|
||||||
current,
|
current,
|
||||||
|
@ -1395,14 +1401,14 @@ catch(const interrupted &e)
|
||||||
{
|
{
|
||||||
// log::debug
|
// log::debug
|
||||||
// {
|
// {
|
||||||
// "pool(%p) ctx(%p): %s", this, &cur(), e.what()
|
// log, "pool(%p) ctx(%p): %s", this, &cur(), e.what()
|
||||||
// };
|
// };
|
||||||
}
|
}
|
||||||
catch(const terminated &e)
|
catch(const terminated &e)
|
||||||
{
|
{
|
||||||
// log::debug
|
// log::debug
|
||||||
// {
|
// {
|
||||||
// "pool(%p) ctx(%p): terminated", this, &cur()
|
// log, "pool(%p) ctx(%p): terminated", this, &cur()
|
||||||
// };
|
// };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1438,7 +1444,7 @@ catch(const std::exception &e)
|
||||||
{
|
{
|
||||||
log::critical
|
log::critical
|
||||||
{
|
{
|
||||||
"pool(%p '%s') ctx(%p '%s' id:%u): unhandled: %s",
|
log, "pool(%p '%s') ctx(%p '%s' id:%u): unhandled: %s",
|
||||||
this,
|
this,
|
||||||
name,
|
name,
|
||||||
current,
|
current,
|
||||||
|
@ -1453,7 +1459,7 @@ ircd::ctx::debug_stats(const pool &pool)
|
||||||
{
|
{
|
||||||
log::debug
|
log::debug
|
||||||
{
|
{
|
||||||
"pool '%s' total: %zu avail: %zu queued: %zu active: %zu pending: %zu",
|
log, "pool '%s' total: %zu avail: %zu queued: %zu active: %zu pending: %zu",
|
||||||
pool.name,
|
pool.name,
|
||||||
pool.size(),
|
pool.size(),
|
||||||
pool.avail(),
|
pool.avail(),
|
||||||
|
@ -1630,7 +1636,7 @@ ircd::ctx::prof::check_slice()
|
||||||
if(unlikely(slice_exceeded_warning(last_slice) && !slice_exempt))
|
if(unlikely(slice_exceeded_warning(last_slice) && !slice_exempt))
|
||||||
log::dwarning
|
log::dwarning
|
||||||
{
|
{
|
||||||
"context '%s' id:%lu watchdog: timeslice excessive; lim:%lu last:%lu pct:%.2lf",
|
log, "context '%s' id:%lu watchdog: timeslice excessive; lim:%lu last:%lu pct:%.2lf",
|
||||||
name(c),
|
name(c),
|
||||||
id(c),
|
id(c),
|
||||||
ulong(settings::slice_warning),
|
ulong(settings::slice_warning),
|
||||||
|
@ -1679,7 +1685,7 @@ ircd::ctx::prof::check_stack()
|
||||||
if(unlikely(!stack_exempt && stack_exceeded_warning(stack_at)))
|
if(unlikely(!stack_exempt && stack_exceeded_warning(stack_at)))
|
||||||
log::dwarning
|
log::dwarning
|
||||||
{
|
{
|
||||||
"context '%s' id:%lu watchdog: stack used %zu of %zu bytes",
|
log, "context '%s' id:%lu watchdog: stack used %zu of %zu bytes",
|
||||||
name(c),
|
name(c),
|
||||||
id(c),
|
id(c),
|
||||||
stack_at,
|
stack_at,
|
||||||
|
|
Loading…
Reference in a new issue