Julewire Core
julewire-core is the synchronous structured logging runtime behind Julewire.
It builds provider-neutral records, execution context, propagated carry, non-propagated attributes, final summaries, processor chains, and synchronous direct outputs. It does not know about app frameworks, privacy policy, provider schemas, async queues, or delivery.
Install
gem "julewire-core"
Quickstart
Julewire.configure do |config|
config.destinations.use(:default, output: $stdout)
end
Julewire.with_execution(type: :job, id: "job-1") do
Julewire.context.add(tenant_id: "tenant-1")
Julewire.summary.increment(:records_seen)
Julewire.measure(:process_record) do
Julewire.emit("processed record", id: 123)
end
end
By default, direct output is newline-delimited JSON.
Field Bags
| Bag | Use it for | Propagates? | Default JSON? |
|---|---|---|---|
context |
queryable facts copied onto records in the current scope | yes | yes |
carry |
hidden forwarding metadata for integrations and formatters | yes | no |
neutral |
provider-neutral formatter-coordination facts | no | no |
attributes |
integration and application namespaces | no | yes |
summary |
final-only counters, timings, and completion facts | no | summary only |
labels |
operator-safe routing/grouping metadata | no | yes |
metrics |
numeric measurements such as duration | no | yes |
Docs
- Quickstart
- Configuration
- Advanced Configuration
- Context and Propagation
- Instrumentation Cheatsheet
- Attribute Keys
- Records and Data Policy
- Outputs and Lifecycle
- Developer Tail
- Health Schema
- Security and Wire Keys
- Extension Contracts
- Extensions and API
- Record Sources
- Internals
- Development
Runtime Promise
Julewire is best-effort logging infrastructure. StandardError failures inside
Julewire's own normalization, processing, formatting, encoding, and output path
are contained so application code keeps running.
Core stays synchronous. Custom destinations own async queues, files, fanout, batching, retries, and delivery health.