Skip to content

Commit 6e68a6d

Browse files
committed
feat(logging): add options to log to file
1 parent 8b2dba6 commit 6e68a6d

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

agent/src/main/java/com/intergral/deep/agent/logging/Logger.java

+21-5
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,37 @@
1919

2020
import com.intergral.deep.agent.AgentImpl;
2121
import com.intergral.deep.agent.settings.Settings;
22+
import java.io.IOException;
2223
import java.util.logging.ConsoleHandler;
24+
import java.util.logging.FileHandler;
2325
import java.util.logging.Level;
26+
import java.util.logging.SimpleFormatter;
2427
import org.slf4j.LoggerFactory;
2528

2629
public class Logger {
2730

28-
public static org.slf4j.Logger configureLogging(final Settings settings) {
31+
public static void configureLogging(final Settings settings) {
2932
final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("com.intergral");
3033
logger.setUseParentHandlers(false);
3134
final ConsoleHandler handler = new ConsoleHandler();
3235
logger.addHandler(handler);
3336

34-
final Level settingAs = settings.getSettingAs("logging.level", Level.class);
35-
handler.setLevel(settingAs);
36-
logger.setLevel(settingAs);
37-
return LoggerFactory.getLogger(AgentImpl.class);
37+
final Level loggingLevel = settings.getSettingAs("logging.level", Level.class);
38+
final String loggingPath = settings.getSettingAs("logging.path", String.class);
39+
40+
if (loggingPath != null && !loggingPath.isEmpty()) {
41+
try {
42+
final FileHandler fileHandler = new FileHandler(loggingPath);
43+
fileHandler.setFormatter(new SimpleFormatter());
44+
logger.addHandler(fileHandler);
45+
} catch (IOException e) {
46+
System.out.println("Cannot initialize file handler for logger.");
47+
System.err.println("Cannot initialize file handler for logger.");
48+
}
49+
}
50+
51+
handler.setLevel(loggingLevel);
52+
logger.setLevel(loggingLevel);
53+
LoggerFactory.getLogger(AgentImpl.class);
3854
}
3955
}

agent/src/main/resources/deep_settings.properties

+3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@
1414
# You should have received a copy of the GNU Affero General Public License
1515
# along with this program. If not, see <https://www.gnu.org/licenses/>.
1616
#
17+
# the level of logging for all thing deep
1718
logging.level=OFF
19+
# an optional path to the file to log to (or JUL file handler patten)
20+
logging.path=
1821
# the interval between calls to poll for tracepoints
1922
poll.timer=10000
2023
#The URL for the service to connect to (default: deep:43315)

0 commit comments

Comments
 (0)