enso/docs/infrastructure
Hubert Plociniczak 18b2491a41
Always log to console and file (#7825)
* Always log verbose to a file

The change adds an option by default to always log to a file with
verbose log level.
The implementation is a bit tricky because in the most common use-case
we have to always log in verbose mode to a socket and only later apply
the desired log levels. Previously socket appender would respect the
desired log level already before forwarding the log.

If by default we log to a file, verbose mode is simply ignored and does
not override user settings.

To test run `project-manager` with `ENSO_LOGSERVER_APPENDER=console` env
variable. That will output to the console with the default `INFO` level
and `TRACE` log level for the file.

* add docs

* changelog

* Address some PR requests

1. Log INFO level to CONSOLE by default
2. Change runner's default log level from ERROR to WARN

Took a while to figure out why the correct log level wasn't being passed
to the language server, therefore ignoring the (desired) verbose logs
from the log file.

* linter

* 3rd party uses log4j for logging

Getting rid of the warning by adding a log4j over slf4j bridge:
```
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
```

* legal review update

* Make sure tests use test resources

Having `application.conf` in `src/main/resources` and `test/resources`
does not guarantee that in Tests we will pick up the latter. Instead, by
default it seems to do some kind of merge of different configurations,
which is far from desired.

* Ensure native launcher test log to console only

Logging to console and (temporary) files is problematic for Windows.
The CI also revealed a problem with the native configuration because it
was not possible to modify the launcher via env variables as everything
was initialized during build time.

* Adapt to method changes

* Potentially deal with Windows failures
2023-09-26 11:32:04 +02:00
..
benchmarks.md Invoke all Enso benchmarks via JMH (#7101) 2023-08-07 12:39:01 +00:00
java-11.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
logging.md Always log to console and file (#7825) 2023-09-26 11:32:04 +02:00
native-image.md Optional Espresso support with ENSO_JAVA=espresso env variable 2023-09-19 15:10:12 +02:00
README.md Invoke all Enso benchmarks via JMH (#7101) 2023-08-07 12:39:01 +00:00
rust.md Bump GraalVM Version to 20.2.0 (#1094) 2020-08-28 13:03:09 +02:00
sbt.md Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
upgrading-graalvm.md Update GraalVM to 22.3.1 (#5602) 2023-02-14 15:51:17 +00:00

layout title category tags order
section-summary Infrastructure infrastructure
infrastructure
readme
0

Infrastructure

The Enso runtime runs on the GraalVM which is a version of the JVM. This folder contains all documentation pertaining to Enso's infrastructure, which is broken up as follows:

  • sbt: The build tools that are used for building the project.
  • Java 11: Description of changes related to the Java 11 migration.
  • Native Image: Description of the Native Image build used for building the launcher native binary.
  • Rust: Description of integration of the Scala project with the Rust components.
  • Upgrading GraalVM: Description of steps that have to be performed by each developer when the project is upgraded to a new version of GraalVM.
  • Benchmarks: Description of the benchmarking infrastructure used for measuring performance of the runtime.
  • Logging: Description of an unified and centralized logging infrastructure that should be used by all components.