forked from elastic/elastic-otel-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAgentLog.java
More file actions
69 lines (56 loc) · 2.53 KB
/
AgentLog.java
File metadata and controls
69 lines (56 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package co.elastic.otel.logging;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
public class AgentLog {
private static final String PATTERN = "%d{DEFAULT} [%t] %-5level %logger{36} - %msg{nolookups}%n";
// logger is an empty string
private static final String ROOT_LOGGER_NAME = "";
private AgentLog() {}
public static void init() {
ConfigurationBuilder<BuiltConfiguration> conf =
ConfigurationBuilderFactory.newConfigurationBuilder();
conf.add(
conf.newAppender("stdout", "Console")
.add(conf.newLayout("PatternLayout").addAttribute("pattern", PATTERN)));
conf.add(conf.newRootLogger().add(conf.newAppenderRef("stdout")));
Configurator.initialize(conf.build(false));
}
/**
* Sets the agent log level at runtime
*
* @param level log level
*/
public static void setLevel(Level level) {
// Using log4j2 implementation allows to change the log level programmatically at runtime
// which is not directly possible through the slf4j API and simple implementation used in
// upstream distribution.
Configurator.setAllLevels(ROOT_LOGGER_NAME, level);
// when debugging we should avoid very chatty http client debug messages
// this behavior is replicated from the upstream distribution.
if (level.intLevel() >= Level.DEBUG.intLevel()) {
Configurator.setLevel("okhttp3.internal.http2", Level.INFO);
Configurator.setLevel("okhttp3.internal.concurrent.TaskRunner", Level.INFO);
}
}
}