Book Image

Rust Standard Library Cookbook

By : Jan Hohenheim, Daniel Durante
Book Image

Rust Standard Library Cookbook

By: Jan Hohenheim, Daniel Durante

Overview of this book

Mozilla’s Rust is gaining much attention with amazing features and a powerful library. This book will take you through varied recipes to teach you how to leverage the Standard library to implement efficient solutions. The book begins with a brief look at the basic modules of the Standard library and collections. From here, the recipes will cover packages that support file/directory handling and interaction through parsing. You will learn about packages related to advanced data structures, error handling, and networking. You will also learn to work with futures and experimental nightly features. The book also covers the most relevant external crates in Rust. By the end of the book, you will be proficient at using the Rust Standard library.
Table of Contents (12 chapters)

How it works...

Our FileLogger will, as the name suggests, log things to a file. It also accepts a maximum logging level on initialization.

You should not get used to directly logging things on a disk. As stated by The Twelve-Factor App guidelines (https://12factor.net/logs), logs should be treated as event streams, in the form of a raw dump to stdout. The production environment can then route all log streams to their final destination over systemd or a dedicated log router such as Logplex (https://github.com/heroku/logplex) or Fluentd (https://github.com/fluent/fluentd). These will then decide if the logs should be sent to a file, an analysis system like Splunk (https://www.splunk.com/), or a data warehouse like Hive (http://hive.apache.org/).

Every logger needs to implement the log::Log trait, which consists of the enabled, log, and flush methods. enabled should return if a certain log event is accepted by the logger. Here, you can go wild with whatever filtering logic...