`
xcl959259
  • 浏览: 12946 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

log4j与logback自定义文件存放目录方法

 
阅读更多

       为了方便日志的管理,我们在集群之间通过网络挂载的方式创建了一个共享目录即在所有的服务器上均可以访问此磁盘目录。因此我们在写日志时需要根据集群的环境动态的设定日志的存储路径。

       我们的工程日志的记录采用了两种方式log4j和sl4f+logback

一、log4j自定义路径

       1、创建类LogbackCustomName让其继承ServletContextListener。

   public static final String log4jdirkey = "log4jdir";

 @Override
 public void contextDestroyed(ServletContextEvent log4jdirkey) {

  System.getProperties().remove(log4jdirkey);

 }

 @Override
 public void contextInitialized(ServletContextEvent servletcontextevent) {
  InetAddress netAddress = getInetAddress();

//获取主机名 此方法也可以获取主机IP但是只能在windows中使用

  String log4jdir = getHostName(netAddress);

  System.setProperty(log4jdirkey, log4jdir);
 }

 public static InetAddress getInetAddress() {

  try {
   return InetAddress.getLocalHost();
  } catch (UnknownHostException e) {
   e.printStackTrace();
  }
  return null;

 }

 public static String getHostName(InetAddress netAddress) {
  if (null == netAddress) {
   return null;
  }
  String ip = netAddress.getHostName();
  return ip;
 }
2、修改web.xml文件

       在web.xml中增加监听

 <listener>
  <listener-class>XXX.XXXX.LogbackCustomName</listener-class>
 </listener>

      这一段一定要放在Spring的监听之前,否则不会生效。

 配置完成后在日志写入路径中加上${log4jdir}即可。

 二、logback自定义路径

1、首先创建类LogbackCustomName继承logback中的PropertyDefinerBase

  @Override
 public String getPropertyValue() {
  String info;
  InetAddress netAddress = getInetAddress();

//获取主机名 linux多网卡无法根据环境指定具体网卡,此方法只能在windows下使用
  info = getHostName(netAddress); 
  return info;

 }

 public static InetAddress getInetAddress() {

  try {
   return InetAddress.getLocalHost();
  } catch (UnknownHostException e) {
   e.printStackTrace();
  }
  return null;

 }

 public static String getHostName(InetAddress netAddress) {
  if (null == netAddress) {
   return null;
  }
  String ip = netAddress.getHostName();
  return ip;
 }

二、修改logback.xml配置文件,增加自定义变量

 <define  name="HostName" class="XXX.XXX..LogbackCustomName" /> 

然后在定义路径时在路径名上加上${HostName}即可。

 

分享到:
评论

相关推荐

    logback+self4j 进行日志记录

    **SLF4J 是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等。这样做的好处是,开发者可以在不修改代码的情况下更换底层的日志实现,只需改变依赖即可。** **Logback 是 SLF4J 的默认实现,由 ...

    springboot整合logback保存日志到文件

    Logback是Java平台上的一个强大的日志框架,它被广泛用于替代传统如log4j的日志系统。Spring Boot默认集成了Logback作为日志处理系统,因为它提供高效的日志记录能力并易于配置。本篇将详细介绍如何在Spring Boot...

    spring boot logback 实现

    首先,Logback是由Ceki Gülcü创建的,它是Log4j的继任者,提供了更高的性能和更丰富的特性。在Spring Boot中,我们可以通过简单的配置就能启用和定制Logback。 1. **引入依赖**:在`pom.xml`文件中,我们需要添加...

    logback文档

    Logback是一个开源的日志记录框架,它是log4j的一个继承者。作为Java应用中用于日志记录的重要组件,Logback通过其设计的灵活性和高性能提供了可靠、快速和安全的日志记录功能。文档提供了关于Logback配置与使用的...

    apache-tomcat-9.0.37-logback.zip

    Logback则是Java世界中广泛使用的日志记录框架,它由著名的log4j项目创始人Ceki Gülcü创建,提供了高效且灵活的日志管理功能。 【标签】"database"暗示这个压缩包可能还包含了与数据库相关的配置或库,因为Tomcat...

    SpringBoot默认日志配置说明

    Spring Boot默认集成了多种日志框架,如Logback和Log4j2,而其首选的日志实现是Logback。本文将深入探讨Spring Boot的日志配置,包括如何设置日志级别、输出位置、格式等。 首先,Spring Boot的日志配置主要通过`...

    springboot-ueditor.zip

    - `log`:可能是日志文件的存放目录,Spring Boot可以通过配置日志框架(如Logback、Log4j)来管理日志。 - `target`:这是Maven构建后的输出目录,包含编译后的类文件和最终的可执行jar或war。 - `src`:源代码...

    java-log:带有 AOP 和注解的 Java 方法日志记录

    Java提供了多种日志框架,如java.util.logging(JUL)、Apache Commons Log4j、Logback和SLF4J(Simple Logging Facade for Java)。SLF4J是一个接口,为其他日志框架提供一个抽象层,允许我们轻松切换日志实现。...

    pay-java-parent-develop.zip

    8. **日志管理**:项目可能使用Log4j、SLF4J或Logback进行日志记录,日志配置文件(如`log4j.properties`或`logback.xml`)会定义日志级别、输出格式和目标位置。 9. **安全和认证**:支付系统通常涉及到敏感数据,...

    LOG660

    2. `src/main/resources`: 可能包含了日志配置文件,如log4j.properties或logback.xml。 3. `pom.xml` 或 `build.gradle`: 项目的构建文件,描述了项目依赖和构建过程,可能指定了日志库版本。 4. `README.md`: 项目...

    tomcat8.5版本

    9. **更好的日志系统**:Tomcat 8.5的日志系统支持更灵活的日志配置,可以方便地集成第三方日志框架,如Log4j或Logback。 10. **错误页面处理**:错误页面现在可以作为Servlet部署,而不是仅限于静态HTML,这为...

    mybatis-day01

    2. 日志配置:可以通过log4j、logback等日志框架进行日志输出,便于调试和问题定位。 3. 数据库驱动配置:在类路径下添加相应的JDBC驱动,MyBatis会自动识别并使用。 四、MyBatis映射文件 1. SQL语句:在mapper.xml...

    MyBatis1.rar

    - `src/main/resources`: 资源文件目录,可能有SQL映射文件(mapper.xml)、日志配置(logback.xml或log4j.properties)以及其他配置文件。 - `database`目录:可能包含数据库脚本,用于初始化数据库结构。 - `lib`...

    一个简单实现登录和注册的小demo

    10. **错误处理与日志记录**: 为了调试和问题排查,项目中可能会有自定义的异常处理和日志记录配置,如使用Spring的@ControllerAdvice和Log4j或Logback。 11. **Target目录**: Maven编译后的输出文件通常位于`...

    项目初始化依赖整理发广告哼哼唧唧几节课

    `logdir`通常是日志文件的存放目录,Spring Boot项目默认使用Logback或Log4j2作为日志框架,配置好后,应用的日志将输出到这个目录下,方便开发者调试和监控应用状态。 `.idea`目录是IntelliJ IDEA的工作区配置,...

    chaoshimavcen.rar

    SSM项目通常会引入Log4j或Logback等日志框架,以便追踪和记录系统运行时的详细信息。 10. **Maven管理**:作为项目构建工具,Maven负责管理项目的依赖关系,构建生命周期以及项目信息。在“chaoshimavcen.rar”中,...

    tomcat8.5.59

    4. 日志系统:增强了日志记录功能,可以方便地集成各种日志框架,如Log4j、Logback等,提高日志管理的便利性。 三、Tomcat的部署与管理 1. 环境准备:确保安装了Java运行环境,并配置好JAVA_HOME环境变量。Tomcat ...

    maven 项目cxf 使用jqgrid4.4.3 项目开发代码

    CXF提供了异常处理机制,可以自定义错误响应,同时通过日志框架(如Log4j或Logback)记录服务端的日志,便于调试和问题定位。 10. **测试**: 对于这样的项目,单元测试和集成测试是必要的。可以使用JUnit对服务...

    基于java的-129-jspm影院管理系统--LW-源码.zip

    日志记录则会用到如Log4j或Logback这样的日志框架。 总结,这个基于Java的影院管理系统是一个集成了前端和后端的完整项目,它利用了Java的强大特性和相关框架,实现了影院日常运营的各项功能,如票务管理、放映安排...

    springBoot1.zip

    标题中的"springBoot1.zip"表明这是一个与Spring Boot相关的压缩包文件,...- 日志框架(如Logback、Log4j)用于记录应用日志。 以上是对这个压缩包文件内容的推测,具体的实现细节需要解压文件并查看源代码才能确定。

Global site tag (gtag.js) - Google Analytics