![PyPI Now Supports iOS and Android Wheels for Mobile Python Development](https://cdn.sanity.io/images/cgdhsj6q/production/96416c872705517a6a65ad9646ce3e7caef623a0-1024x1024.webp?w=400&fit=max&auto=format)
Security News
PyPI Now Supports iOS and Android Wheels for Mobile Python Development
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
@rocicorp/logger
Advanced tools
Provides a simple logging interface as well as a LogContext
class which
carries a context around.
npm install @rocicorp/logger
LogContext
includes a context that gets included in the log message.
import {LogContext} from '@rocicorp/logger';
const lc = new LogContext('info');
lc.info('hello'); // prints "hello"
const lc2 = new LogContext('info', {name: 'alice'});
lc.info('hello'); // prints "name=alice hello"
const lc3 = lc2.withContext('bbb');
lc3.info('hello'); // prints "name=alice bbb hello"
const lc4 = lc3.withContext('ccc');
lc4.info('hello'); // prints "name=alice bbb ccc hello"
const lc5 = lc4.withContext('ddd', 'eee');
lc5.info('hello'); // prints "name=alice bbb ccc ddd=eee hello"
// Or get a context logger appropriate for the Node environment.
const nlc = newNodeLogContext('debug');
nlc.info('fff'); // prints "INF fff"
interface OptionalLogger { ... }
This interface is used to provide conditional logging. It is intended to be used
with conditional method calling ?.()
.
import {ConsoleLogger, type OptionalLogger} from '@rocicorp/logger';
const l: OptionalLogger = new ConsoleLogger('info');
l.info?.('hello'); // prints "hello"
l.debug?.('hello'); // does not print anything
But more importantly it does not evaluate the arguments.
import {ConsoleLogger, type OptionalLogger} from '@rocicorp/logger';
const alwaysThrows = () => {
throw new Error();
};
const l: OptionalLogger = new ConsoleLogger('info');
l.debug?.(alwaysThrows()); // does not print anything, but does not throw
LogSink
There is also the LogSink
interface which is very minimal. Its intended use is
for custom log implementations.
class ExampleLogSink implements LogSink {
log(level: LogLevel, ...args: unknown[]): void {
//...
}
}
You can get an OptionalLogger
from a LogSink
using OptionalLoggerImpl
.
import {
OptionalLoggerImpl,
type LogSink,
type OptionalLogger,
} from '@rocicorp/logger';
const logSink: LogSink = new ExampleLogSink();
const l: OptionalLogger = new OptionalLoggerImpl(logSink);
FAQs
Logging utilities
The npm package @rocicorp/logger receives a total of 174 weekly downloads. As such, @rocicorp/logger popularity was classified as not popular.
We found that @rocicorp/logger demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.