#logging

anna_lillith 🇺🇦🌱🐖's avatar
anna_lillith 🇺🇦🌱🐖

@anna_lillith@mas.to

This news is a devastating blow to conservation efforts.

Trump has ordered over 100 million hectares of forest to be chopped down. 

That's nearly three times the size of California.
ALT text detailsTrump has ordered over 100 million hectares of forest to be chopped down. That's nearly three times the size of California.
𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™'s avatar
𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™

@kubikpixel@chaos.social

»Rust env_logger Example – Simplified Logging in Rust:
Logging is an essential part of software development, providing insight into the behavior of an application. Rust offers several logging crates, and env_logger is one of the most popular for its simplicity and flexibility«

I posted this link here so that I can find it again - certainly never in my bunch of the disordered link storage ;)

📝 scribe.rip/@aleksej.gudkov/rus

𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™'s avatar
𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™

@kubikpixel@chaos.social

»Rust env_logger Example – Simplified Logging in Rust:
Logging is an essential part of software development, providing insight into the behavior of an application. Rust offers several logging crates, and env_logger is one of the most popular for its simplicity and flexibility«

I posted this link here so that I can find it again - certainly never in my bunch of the disordered link storage ;)

📝 scribe.rip/@aleksej.gudkov/rus

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just released 0.9.0! 🎉

This version brings two major improvements to our zero-dependency library for :

  1. New Synchronous Configuration API: You can now configure LogTape synchronously with configureSync(), disposeSync(), and resetSync(). Perfect for simpler setups where you don't need async operations!

  2. Better Runtime Compatibility: We've moved all file-related components to a separate @logtape/file package. This means the core package now works flawlessly across all JavaScript environments—browsers, edge functions, and various bundlers without any file system dependencies.

Plus, we've added level mapping options for console sinks, giving you more control over how your logs appear.

Check out the full release notes for migration details:

https://hackers.pub/@hongminhee/2025/logtape-090

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

We're excited to announce the release of LogTape 0.9.0! This version brings important improvements to make LogTape more flexible across different JavaScript environments while simplifying configuration for common use cases.

What's New

  • Synchronous Configuration API: Added new synchronous configuration functions for environments where async operations aren't needed or desired
  • Improved Runtime Compatibility: Moved file-system dependent components to a separate package for better cross-runtime support

New Features

Synchronous Configuration API: Simplifying Your Setup

Added synchronous versions of the configuration functions:

These functions offer a simpler API for scenarios where async operations aren't needed, allowing for more straightforward code without awaiting promises. Note that these functions cannot use sinks or filters that require asynchronous disposal (such as stream sinks), but they work perfectly for most common logging configurations.

import { configureSync, getConsoleSink } from "@logtape/logtape";

configureSync({ 
  sinks: {
    console: getConsoleSink(),
  },
  loggers: [
    {
      category: "my-app",
      lowestLevel: "info",
      sinks: ["console"],
    },
  ],
});

Console Sink Enhancements

Breaking Changes

File Sinks Moved to Separate Package: Better Cross-Platform Support

To improve runtime compatibility, file-related sinks have been moved to the @logtape/file package:

This architectural change ensures the core @logtape/logtape package is fully compatible with all JavaScript runtimes, including browsers and edge functions, without introducing file system dependencies. You'll now enjoy better compatibility with bundlers like Webpack, Rollup, and Vite that previously had issues with the file system imports.

Migration Guide

If you were using file sinks, update your imports:

// Before
import { getFileSink, getRotatingFileSink } from "@logtape/logtape";

// After
import { getFileSink, getRotatingFileSink } from "@logtape/file";

Don't forget to install the new package:

# For npm, pnpm, Yarn, Bun
npm add @logtape/file

# For Deno
deno add jsr:@logtape/file

Looking Forward

This release represents our ongoing commitment to making LogTape the most flexible and developer-friendly logging solution for JavaScript and TypeScript applications. We're continuing to improve performance and extend compatibility across the JavaScript ecosystem.

Contributors

Special thanks to Murph Murphy for their valuable contribution to this release.


As always, we welcome your feedback and contributions! Feel free to open issues or pull requests on our GitHub repository.

Happy logging!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just released 0.9.0! 🎉

This version brings two major improvements to our zero-dependency library for :

  1. New Synchronous Configuration API: You can now configure LogTape synchronously with configureSync(), disposeSync(), and resetSync(). Perfect for simpler setups where you don't need async operations!

  2. Better Runtime Compatibility: We've moved all file-related components to a separate @logtape/file package. This means the core package now works flawlessly across all JavaScript environments—browsers, edge functions, and various bundlers without any file system dependencies.

Plus, we've added level mapping options for console sinks, giving you more control over how your logs appear.

Check out the full release notes for migration details:

https://hackers.pub/@hongminhee/2025/logtape-090

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

We're excited to announce the release of LogTape 0.9.0! This version brings important improvements to make LogTape more flexible across different JavaScript environments while simplifying configuration for common use cases.

What's New

  • Synchronous Configuration API: Added new synchronous configuration functions for environments where async operations aren't needed or desired
  • Improved Runtime Compatibility: Moved file-system dependent components to a separate package for better cross-runtime support

New Features

Synchronous Configuration API: Simplifying Your Setup

Added synchronous versions of the configuration functions:

These functions offer a simpler API for scenarios where async operations aren't needed, allowing for more straightforward code without awaiting promises. Note that these functions cannot use sinks or filters that require asynchronous disposal (such as stream sinks), but they work perfectly for most common logging configurations.

import { configureSync, getConsoleSink } from "@logtape/logtape";

configureSync({ 
  sinks: {
    console: getConsoleSink(),
  },
  loggers: [
    {
      category: "my-app",
      lowestLevel: "info",
      sinks: ["console"],
    },
  ],
});

Console Sink Enhancements

Breaking Changes

File Sinks Moved to Separate Package: Better Cross-Platform Support

To improve runtime compatibility, file-related sinks have been moved to the @logtape/file package:

This architectural change ensures the core @logtape/logtape package is fully compatible with all JavaScript runtimes, including browsers and edge functions, without introducing file system dependencies. You'll now enjoy better compatibility with bundlers like Webpack, Rollup, and Vite that previously had issues with the file system imports.

Migration Guide

If you were using file sinks, update your imports:

// Before
import { getFileSink, getRotatingFileSink } from "@logtape/logtape";

// After
import { getFileSink, getRotatingFileSink } from "@logtape/file";

Don't forget to install the new package:

# For npm, pnpm, Yarn, Bun
npm add @logtape/file

# For Deno
deno add jsr:@logtape/file

Looking Forward

This release represents our ongoing commitment to making LogTape the most flexible and developer-friendly logging solution for JavaScript and TypeScript applications. We're continuing to improve performance and extend compatibility across the JavaScript ecosystem.

Contributors

Special thanks to Murph Murphy for their valuable contribution to this release.


As always, we welcome your feedback and contributions! Feel free to open issues or pull requests on our GitHub repository.

Happy logging!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just released 0.9.0! 🎉

This version brings two major improvements to our zero-dependency library for :

  1. New Synchronous Configuration API: You can now configure LogTape synchronously with configureSync(), disposeSync(), and resetSync(). Perfect for simpler setups where you don't need async operations!

  2. Better Runtime Compatibility: We've moved all file-related components to a separate @logtape/file package. This means the core package now works flawlessly across all JavaScript environments—browsers, edge functions, and various bundlers without any file system dependencies.

Plus, we've added level mapping options for console sinks, giving you more control over how your logs appear.

Check out the full release notes for migration details:

https://hackers.pub/@hongminhee/2025/logtape-090

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

We're excited to announce the release of LogTape 0.9.0! This version brings important improvements to make LogTape more flexible across different JavaScript environments while simplifying configuration for common use cases.

What's New

  • Synchronous Configuration API: Added new synchronous configuration functions for environments where async operations aren't needed or desired
  • Improved Runtime Compatibility: Moved file-system dependent components to a separate package for better cross-runtime support

New Features

Synchronous Configuration API: Simplifying Your Setup

Added synchronous versions of the configuration functions:

These functions offer a simpler API for scenarios where async operations aren't needed, allowing for more straightforward code without awaiting promises. Note that these functions cannot use sinks or filters that require asynchronous disposal (such as stream sinks), but they work perfectly for most common logging configurations.

import { configureSync, getConsoleSink } from "@logtape/logtape";

configureSync({ 
  sinks: {
    console: getConsoleSink(),
  },
  loggers: [
    {
      category: "my-app",
      lowestLevel: "info",
      sinks: ["console"],
    },
  ],
});

Console Sink Enhancements

Breaking Changes

File Sinks Moved to Separate Package: Better Cross-Platform Support

To improve runtime compatibility, file-related sinks have been moved to the @logtape/file package:

This architectural change ensures the core @logtape/logtape package is fully compatible with all JavaScript runtimes, including browsers and edge functions, without introducing file system dependencies. You'll now enjoy better compatibility with bundlers like Webpack, Rollup, and Vite that previously had issues with the file system imports.

Migration Guide

If you were using file sinks, update your imports:

// Before
import { getFileSink, getRotatingFileSink } from "@logtape/logtape";

// After
import { getFileSink, getRotatingFileSink } from "@logtape/file";

Don't forget to install the new package:

# For npm, pnpm, Yarn, Bun
npm add @logtape/file

# For Deno
deno add jsr:@logtape/file

Looking Forward

This release represents our ongoing commitment to making LogTape the most flexible and developer-friendly logging solution for JavaScript and TypeScript applications. We're continuing to improve performance and extend compatibility across the JavaScript ecosystem.

Contributors

Special thanks to Murph Murphy for their valuable contribution to this release.


As always, we welcome your feedback and contributions! Feel free to open issues or pull requests on our GitHub repository.

Happy logging!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just released 0.9.0! 🎉

This version brings two major improvements to our zero-dependency library for :

  1. New Synchronous Configuration API: You can now configure LogTape synchronously with configureSync(), disposeSync(), and resetSync(). Perfect for simpler setups where you don't need async operations!

  2. Better Runtime Compatibility: We've moved all file-related components to a separate @logtape/file package. This means the core package now works flawlessly across all JavaScript environments—browsers, edge functions, and various bundlers without any file system dependencies.

Plus, we've added level mapping options for console sinks, giving you more control over how your logs appear.

Check out the full release notes for migration details:

https://hackers.pub/@hongminhee/2025/logtape-090

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

We're excited to announce the release of LogTape 0.9.0! This version brings important improvements to make LogTape more flexible across different JavaScript environments while simplifying configuration for common use cases.

What's New

  • Synchronous Configuration API: Added new synchronous configuration functions for environments where async operations aren't needed or desired
  • Improved Runtime Compatibility: Moved file-system dependent components to a separate package for better cross-runtime support

New Features

Synchronous Configuration API: Simplifying Your Setup

Added synchronous versions of the configuration functions:

These functions offer a simpler API for scenarios where async operations aren't needed, allowing for more straightforward code without awaiting promises. Note that these functions cannot use sinks or filters that require asynchronous disposal (such as stream sinks), but they work perfectly for most common logging configurations.

import { configureSync, getConsoleSink } from "@logtape/logtape";

configureSync({ 
  sinks: {
    console: getConsoleSink(),
  },
  loggers: [
    {
      category: "my-app",
      lowestLevel: "info",
      sinks: ["console"],
    },
  ],
});

Console Sink Enhancements

Breaking Changes

File Sinks Moved to Separate Package: Better Cross-Platform Support

To improve runtime compatibility, file-related sinks have been moved to the @logtape/file package:

This architectural change ensures the core @logtape/logtape package is fully compatible with all JavaScript runtimes, including browsers and edge functions, without introducing file system dependencies. You'll now enjoy better compatibility with bundlers like Webpack, Rollup, and Vite that previously had issues with the file system imports.

Migration Guide

If you were using file sinks, update your imports:

// Before
import { getFileSink, getRotatingFileSink } from "@logtape/logtape";

// After
import { getFileSink, getRotatingFileSink } from "@logtape/file";

Don't forget to install the new package:

# For npm, pnpm, Yarn, Bun
npm add @logtape/file

# For Deno
deno add jsr:@logtape/file

Looking Forward

This release represents our ongoing commitment to making LogTape the most flexible and developer-friendly logging solution for JavaScript and TypeScript applications. We're continuing to improve performance and extend compatibility across the JavaScript ecosystem.

Contributors

Special thanks to Murph Murphy for their valuable contribution to this release.


As always, we welcome your feedback and contributions! Feel free to open issues or pull requests on our GitHub repository.

Happy logging!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Haven't talked about LogTape in a while—it's a library I made for and . You know how logging can be a pain point in JavaScript/TypeScript development? Well, I tried to address some common frustrations.

What makes it special

Zero dependencies

We've all been there with dependency hell, right? has absolutely no external dependencies. Install it without worrying about bloating your node_modules.

Hierarchical categories

You can organize your logs in a tree structure. Want to save only database-related logs to a file? Easy to do. Child categories can inherit settings from their parents too, which keeps things clean and manageable.

Library-friendly

Writing a library and want to include logs without stepping on your users' toes? LogTape lets you add logging to your library while giving end users complete control over how those logs are handled.

Structured logging

Plain text logs not cutting it? LogTape supports structured logging. Makes log analysis way easier down the road.

Runs anywhere

Works smoothly in Node.js, Deno, Bun, browsers, and even edge functions. No special configuration needed.


Check out https://logtape.org/ if you're interested in learning more.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Haven't talked about LogTape in a while—it's a library I made for and . You know how logging can be a pain point in JavaScript/TypeScript development? Well, I tried to address some common frustrations.

What makes it special

Zero dependencies

We've all been there with dependency hell, right? has absolutely no external dependencies. Install it without worrying about bloating your node_modules.

Hierarchical categories

You can organize your logs in a tree structure. Want to save only database-related logs to a file? Easy to do. Child categories can inherit settings from their parents too, which keeps things clean and manageable.

Library-friendly

Writing a library and want to include logs without stepping on your users' toes? LogTape lets you add logging to your library while giving end users complete control over how those logs are handled.

Structured logging

Plain text logs not cutting it? LogTape supports structured logging. Makes log analysis way easier down the road.

Runs anywhere

Works smoothly in Node.js, Deno, Bun, browsers, and even edge functions. No special configuration needed.


Check out https://logtape.org/ if you're interested in learning more.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Haven't talked about LogTape in a while—it's a library I made for and . You know how logging can be a pain point in JavaScript/TypeScript development? Well, I tried to address some common frustrations.

What makes it special

Zero dependencies

We've all been there with dependency hell, right? has absolutely no external dependencies. Install it without worrying about bloating your node_modules.

Hierarchical categories

You can organize your logs in a tree structure. Want to save only database-related logs to a file? Easy to do. Child categories can inherit settings from their parents too, which keeps things clean and manageable.

Library-friendly

Writing a library and want to include logs without stepping on your users' toes? LogTape lets you add logging to your library while giving end users complete control over how those logs are handled.

Structured logging

Plain text logs not cutting it? LogTape supports structured logging. Makes log analysis way easier down the road.

Runs anywhere

Works smoothly in Node.js, Deno, Bun, browsers, and even edge functions. No special configuration needed.


Check out https://logtape.org/ if you're interested in learning more.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Haven't talked about LogTape in a while—it's a library I made for and . You know how logging can be a pain point in JavaScript/TypeScript development? Well, I tried to address some common frustrations.

What makes it special

Zero dependencies

We've all been there with dependency hell, right? has absolutely no external dependencies. Install it without worrying about bloating your node_modules.

Hierarchical categories

You can organize your logs in a tree structure. Want to save only database-related logs to a file? Easy to do. Child categories can inherit settings from their parents too, which keeps things clean and manageable.

Library-friendly

Writing a library and want to include logs without stepping on your users' toes? LogTape lets you add logging to your library while giving end users complete control over how those logs are handled.

Structured logging

Plain text logs not cutting it? LogTape supports structured logging. Makes log analysis way easier down the road.

Runs anywhere

Works smoothly in Node.js, Deno, Bun, browsers, and even edge functions. No special configuration needed.


Check out https://logtape.org/ if you're interested in learning more.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Haven't talked about LogTape in a while—it's a library I made for and . You know how logging can be a pain point in JavaScript/TypeScript development? Well, I tried to address some common frustrations.

What makes it special

Zero dependencies

We've all been there with dependency hell, right? has absolutely no external dependencies. Install it without worrying about bloating your node_modules.

Hierarchical categories

You can organize your logs in a tree structure. Want to save only database-related logs to a file? Easy to do. Child categories can inherit settings from their parents too, which keeps things clean and manageable.

Library-friendly

Writing a library and want to include logs without stepping on your users' toes? LogTape lets you add logging to your library while giving end users complete control over how those logs are handled.

Structured logging

Plain text logs not cutting it? LogTape supports structured logging. Makes log analysis way easier down the road.

Runs anywhere

Works smoothly in Node.js, Deno, Bun, browsers, and even edge functions. No special configuration needed.


Check out https://logtape.org/ if you're interested in learning more.

Tuomas Tammisto's avatar
Tuomas Tammisto

@tutam@fediscience.org

Dearest Fediverse (and apologies for the absence),

my book "Hard Work: Producing places, relations and value on a Papua New Guinea resource frontier" was just recently published in full digital open access. (Print-on-demand and oa epub out soon!)

hup.fi/site/books/m/10.33134/H

"Hard Work explores the complexities of natural resource extraction, looking at both large-scale processes and personal human-environment interactions. It combines a political ecology focus on the connection between environmental issues and power relations with a focus on how value is produced, represented, and materialized."

@anthropology

Cover of the book "Hard Work". The cover is a photograph showing a foggy tropical river valley. On the foreground on the left stands a Papua New Guinean woman with her back to the camera holding a food basket on her head and walking staff in her right hand looking at the valley. The woman stands in tropical garden and in front of her are banana plants. On right, a bit further from the camera is a tall tree standing in the garden. In the background are forested mountain slopes.

On the top of the cover is the name of the author, "Tuomas Tammisto". Below it is the title of the book: "Hard Work: Producing places, relations and value on a Papua New Guinea resource frontier". On the bottom left is the name of the publisher: "HUP Helsinki University Press".
ALT text detailsCover of the book "Hard Work". The cover is a photograph showing a foggy tropical river valley. On the foreground on the left stands a Papua New Guinean woman with her back to the camera holding a food basket on her head and walking staff in her right hand looking at the valley. The woman stands in tropical garden and in front of her are banana plants. On right, a bit further from the camera is a tall tree standing in the garden. In the background are forested mountain slopes. On the top of the cover is the name of the author, "Tuomas Tammisto". Below it is the title of the book: "Hard Work: Producing places, relations and value on a Papua New Guinea resource frontier". On the bottom left is the name of the publisher: "HUP Helsinki University Press".
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post

0.7.0をリリースしました!

新機能の暗黙的コンテキストにより、リクエストID、ユーザーIDなどの文脈情報を、手動で渡すことなくログに自動的に含められるようになりました。

詳しくは記事をご覧ください:

zenn.dev/hongminhee/articles/3

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

Just released 0.7.0 with implicit contexts! Now you can automatically include request IDs, user IDs, and more in your logs without passing context manually. Read more about this powerful feature:

dev.to/hongminhee/introducing-

Bentley's avatar
Bentley

@Bentley@canada.masto.host

Activists shared a win with the logging slowdown last year, temporarily saving 2000 football fields worth of climate-preserving forest & trails but for how long & what comes next? We asked the Hub's Jenny Yeremiy & Joshua Killeen of .

PODCAST: podcastics.com/episode/309464/

2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" 

Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
ALT text details2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" 

Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
ALT text details2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" 

Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
ALT text details2 images, 1 image is podcast episode cover reads "Kananaskis Clearcuts: Outdated Laws, New Threats," includes 'the Climate Lens' and Calgary Climate Hub logos and a banner reads "NEW EPISODE OUT NOW!" Image 2 is a map of Kanaaskis Country with a red circle around the Highwood area
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

Version 0.5.0 of , the zero-dependency library for , .js, , edge functions, and browsers, has been released! The main additions include:

• Contexts
• ANSI color formatter
• Comprehensive docs
• A few API conveniences

LogTape v0.5.0 is available from JSR and npm:

• JSR: jsr.io/@logtape/logtape@0.5.0
• npm: npmjs.com/package/@logtape/log

In addition, a new website with documentation has been launched, so please check it out!

logtape.org/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

In the next version of , a zero-dependency library for & , contexts will be introduced that allow the same set of properties to be shared across multiple log messages. Thanks to @okikio for collaborating on the design! This feature is available for preview in 0.5.0-dev.60+f819929c.

• JSR: jsr.io/@logtape/logtape@0.5.0-
• npm: npmjs.com/package/@logtape/log

github.com/dahlia/logtape#cont

const logger = getLogger(["my-app", "my-module"]);
const ctx = logger.with({ userId: 1234, requestId: "abc" });
ctx.info `This log message will have the context (userId & requestId).`;
ctx.warn("Context can be used inside message template: {userId}, {requestId}.");
ALT text detailsconst logger = getLogger(["my-app", "my-module"]); const ctx = logger.with({ userId: 1234, requestId: "abc" }); ctx.info `This log message will have the context (userId & requestId).`; ctx.warn("Context can be used inside message template: {userId}, {requestId}.");
lynn~>'s avatar
lynn~>

@lynn_sh@tech.lgbt

does anyone know where userspace programs are supposed to store logs? /var/log/ is not acceptable because i don't wish to ever interact with root

João Pinheiro's avatar
João Pinheiro

@joaopinheiro@kolektiva.social

New Images Show Largest Uncontacted Indigenous Tribe on Earth Dangerously Close to Loggers in Peruvian Amazon
ecowatch.com/indigenous-tribe-

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

Released v0.4.2 of , which is a zero-dependency library for & ! Since this version, it work well on Workers out of box!

• JSR: jsr.io/@logtape/logtape@0.4.2
• npm: npmjs.com/package/@logtape/log

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

offers robust logging capabilities through integration with LogTape. This feature allows you to easily debug and monitor your Fedify app!

To enable , simply install the @logtape/logtape package and configure it in your app's entry point:

import { configure, getConsoleSink } from "@logtape/logtape";

await configure({
  sinks: { console: getConsoleSink() },
  filters: {},
  loggers: [
    { category: "your-app", sinks: ["console"], level: "debug" },
    { category: "fedify",   sinks: ["console"], level: "info" },
  ],
});

Fedify uses hierarchical categories for fine-grained control over log output. Key categories include ["fedify", "federation", "http"] for HTTP requests/responses and ["fedify", "federation", "inbox"]/["fedify", "federation", "outbox"] for incoming/outgoing activities. (There are more categories.)

With integration, you gain valuable insights into your Fedify app's behavior, making troubleshooting and optimization much more straightforward!

https://fedify.dev/manual/log

log4jm's avatar
log4jm

@log4jmc@infosec.exchange

belated #Introduction

I've been enjoying infosec.exchange for the last month or so but have been putting off an because I'm awkward and anxious ( am I right?). I feel more comfortable talking about my cat than myself or my work on social media, so you'll probably mostly see him amongst my boosts and replies. He's a little hacker who tricks me into FaceID unlocking my iPad for him or hides my pouch of physical security keys to remind me not to be careless with them.

See how I just went on about the cat? Yeah... I feel imposter syndrome about belonging in . I'm an IT and focused () whose been fascinated/working with computers since I was 3, and have been doing it professionally for over 10 years now. Does that make me ? I honestly don't know. I love this community though and want to make an effort to share what I do know more often besides the cat pics or conversations or boosting and news I think to share.

If I had to sum up in a few hashtags and such, I know securing and best but I use/protect and if you'll forgive me for using there too. I love and , the and and we share, and stuff, and , and reading/writing reports just as much as code. I'm not super passionate about the but that's not a hill I'd die on and is pretty cool.

Did I mention I have one of the best ever?

Anyway, "it's me, hi!"