日志记录与分析:Java应用程序中的日志系统示例

原创 短命女 2024-12-03 21:39 155阅读 0赞

在Java应用程序中,日志记录和分析是必不可少的一部分。这有助于我们跟踪程序的运行状态,找出问题所在,并进行性能优化。

以下是一个简单的日志系统示例:

  1. 创建一个日志类(如LogManager.java):
  1. import java.io.File;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. public class LogManager {
  5. private static final File LOG_DIR = new File("logs");
  6. private static Map<String, LogHandler> handlers = new HashMap<>();
  7. public synchronized void log(String className, String method, String message) {
  8. // 创建日志文件,如果不存在则创建
  9. File logFile = new File(LOG_DIR, className + "-" + method + ".log"));
  10. if (!logFile.exists() && !logFile.mkdirs())) {
  11. throw new RuntimeException("Failed to create log directory or file.");
  12. }
  13. // 写入日志信息
  14. try (OutputStream os = new FileOutputStream(logFile)) {
  15. LogHandler handler = handlers.get(className);
  16. if (handler != null) {
  17. handler.write(os, method, message);
  18. } else {
  19. os.write("Handler for class " + className + " not found.".getBytes());
  20. }
  21. } catch (IOException e) {
  22. throw new RuntimeException("Failed to write log to file.", e);
  23. }
  24. }
  25. // 添加日志处理器
  26. public synchronized void addHandler(String className, LogHandler handler) {
  27. handlers.put(className, handler);
  28. }
  29. // 删除日志处理器
  30. public synchronized void removeHandler(String className) {
  31. handlers.remove(className);
  32. }
  33. }
  1. 创建日志处理器类(如LogHandler.java):
  1. import java.io.OutputStream;
  2. import java.util.Map;
  3. public interface LogHandler {
  4. void write(OutputStream os, String method, String message));
  5. }
  6. // 示例实现,写入控制台
  7. public class ConsoleLogHandler implements LogHandler {
  8. @Override
  9. public void write(OutputStream os, String method, String message) {
  10. System.out.println("Method: " + method + ", Message: " + message);
  11. }
  12. }
  1. 在应用程序中使用日志系统:
  1. import org.apache.log4j.Logger;
  2. public class App {
  3. private static final LogHandler DEFAULT_HANDLER = new ConsoleLogHandler();
  4. public static void main(String[] args) {
  5. // 创建日志对象,级别为DEBUG
  6. Logger logger = LogManager.getLogger(App.class, Logger.DEBUG));
  7. // 设置默认的日志处理器
  8. logger.addAppender(DEFAULT_HANDLER);
  9. // 在应用程序中使用log方法进行记录
  10. logger.info("App starting...");
  11. // 关闭日志对象
  12. logger.shutdown();
  13. }
  14. }

这个示例创建了一个简单的日志系统,包括添加日志处理器和在程序中写入日志。你可以根据需要扩展这个日志系统,比如添加邮件通知、使用不同格式的日志等。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读