# JuliaLogging: Everything you need for logging in Julia

**URL:** <https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736>\
**Category:** Community\
**Tags:** announcement, logging\
**Created:** [November 18, 2021, 5:35pm UTC](https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736 "2021-11-18T17:35:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [November 18, 2021, 5:35pm UTC](https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736/1 "2021-11-18T17:35:51Z")

</div>

## The JuliaLogging organization

[Back in June](https://julialang.zulipchat.com/#narrow/stream/236331-logging/topic/JuliaLogging.20Org) we created the [JuliaLogging](https://github.com/JuliaLogging) organization with the intention to collect and promote various logging packages in Julia. It is my understanding that logging in Julia is quite underutilized, probably because the [Logging standard library](https://docs.julialang.org/en/v1/stdlib/Logging/) is quite limited, and the knowledge of extension packages are not so widespread.

Since we created the organization I have been procrastinating every now and then writing documentation for the organization. The result of this is now published: [https://julialogging.github.io/](https://julialogging.github.io/). The intention of this document is to both give an overview of the many packages that extend the Logging standard library, and also to document and demonstrate common logging operations (routing, filtering, transforming, file rotation, formatting, etc). Please have a look!

### Contribute!

If you find something confusing, missing or something that can be improved I encourage you to contribute. Probably there are logging related packages that I have missed that should be included (note that you don’t have to move the package to the JuliaLogging organization in order to document it there).

I tried to make it easy and fun to contribute: If you clone the repository and run `make` from the root [LiveServer.jl](https://github.com/tlienart/LiveServer.jl) will start a web server on [http://localhost:8080](http://localhost:8080) that will automatically monitor changes to the source files, re-build the HTML pages, and automatically refresh the webpage in the browser. I have found this workflow to be very nice when writing documentation since you get to see the result directly.

#### Miscellaneous comments

- The structure of [https://julialogging.github.io/](https://julialogging.github.io/) is based on the [Diátaxis Framework](https://diataxis.fr). This is the first time I try to structure docs like that. Does anyone have any thoughts on this? Personally I found it difficult to separate what they refer to as “how-to” and “tutorial”.
- Various new features in [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl) were prompted by, and show-cased at, [https://julialogging.github.io/](https://julialogging.github.io/). In particular:
  - Colored output from `@example` and `@repl` blocks ([Documenter.jl#1441](https://github.com/JuliaDocs/Documenter.jl/pull/1441), [Documenter.jl#1628](https://github.com/JuliaDocs/Documenter.jl/pull/1628)),
  - Correct line numbers for `@example` and `@repl` output ([Documenter.jl#1634](https://github.com/JuliaDocs/Documenter.jl/pull/1634)),
  - Prerendering for code highlighting ([Documenter.jl#1627](https://github.com/JuliaDocs/Documenter.jl/pull/1627)) so you can use [your favorite highlighter](https://fredrikekre.se/posts/highlight-julia/),
  - Support for deploying without versions ([Documenter.jl#1616](https://github.com/JuliaDocs/Documenter.jl/pull/1616)) such that [https://julialogging.github.io/](https://julialogging.github.io/) is just [https://julialogging.github.io/](https://julialogging.github.io/) and not [https://julialogging.github.io/stable/](https://julialogging.github.io/stable/).

Happy logging!

---

<div class="post-metadata">

**Author:** ![goerz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerz/32/3269_2.png) [@goerz](https://discourse.julialang.org/u/goerz)\
**Post date:** [November 18, 2021, 6:40pm UTC](https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736/2 "2021-11-18T18:40:37Z")

</div>

> [@fredrikekre](#):
>
> The structure of [https://julialogging.github.io/](https://julialogging.github.io/) is based on the [Diátaxis Framework](https://diataxis.fr). This is the first time I try to structure docs like that. Does anyone have any thoughts on this?

I’m a huge fan of that style of documentation and try to use it in all of my projects

> Personally I found it difficult to separate what they refer to as “how-to” and “tutorial”.

Looking at [https://julialogging.github.io](https://julialogging.github.io), I think you got it pretty much right.

Tutorials are supposed to be didactic lessons designed to introduce new users to some aspect of the package. They generally need to be somewhat “from scratch” and should be reproducible from top to bottom. I typically write these as Jupyter notebooks (or `Literate.jl` or something like that for Julia)

Howtos assume a user that’s already somewhat familiar with the package; they know what they want to do, and just need to be told _how_ to achieve their goal. These can be much more concise, typically just a couple of paragraphs for each “Howto”. They don’t need to be complete, just showing relevant code-snippets should be enough (although I sometimes have hidden “tearup”/“teardown” code in my docs to enable CI checking). If there are multiple ways to do something, the Howto can list all of them (which would often be confusing in a tutorial, where it’s more didactic to focus on just the most common path)

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [November 18, 2021, 7:02pm UTC](https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736/3 "2021-11-18T19:02:57Z")

</div>

This is really good, definitely an example to try and emulate, and it sets a high bar!

My one suggestion would be to have an introduction section, showing a simple example and show some possibilities. Then move the package overview to an Explanations section further down, since it probably belongs after a tutorial.

---

<div class="post-metadata">

**Author:** ![Alec\_Loudenback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alec_loudenback/32/278_2.png) [@Alec\_Loudenback](https://discourse.julialang.org/u/Alec_Loudenback)\
**Post date:** [November 20, 2021, 1:49am UTC](https://discourse.julialang.org/t/julialogging-everything-you-need-for-logging-in-julia/71736/4 "2021-11-20T01:49:53Z")

</div>

Love the logo!
