首页 / 知识
关于java:log4j日志文件名?
2023-04-16 15:04:00

log4j log file names?我们有几个同时运行的作业,它们必须为log4j使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有一种方法可以让每个作业动态命名其日志文件,以使它们保持独立? 谢谢 您可以为每个作业传递Java系统属性吗?如果是这样,您可以像这样进行参数化:
然后在您的log4j.properties中:
您可以使用主机环境(例如)中的值填充Java系统属性,该值将唯一地标识作业的实例。 我们在系统中实现了类似的功能。我们将特定的记录器存储在HashMap中,并根据需要为每个记录器初始化附加器。 这里是一个例子:
然后要在您的工作中使用它,您只需要使用如下一行即可:
这将为每个作业名称创建一个日志文件,并将其放入您指定的目录中的该作业名称所在的文件中。 您可以摆弄其他类型的附加程序,例如,它将继续附加,直到重新启动JVM为止,如果您在始终启动的服务器上运行相同的作业,则可能无法正常工作,但这给出了以下基本概念:它如何工作。 如果提前知道作业名称,则可以在执行getLogger()调用时包括作业名称。然后,您可以使用不同的文件名(或其他目标)将不同的附加程序绑定到不同的记录器。 如果您无法提前知道作业名称,则可以在运行时配置记录器,而不使用配置文件:
您可以为每个作业设置NDC或MDC,然后编写一个根据NDC或MDC值更改名称的附加程序。创建一个新的附加程序并不难。在log4j沙箱中可能还会有一个适合该帐单的附加程序。开始在http://svn.apache.org/viewvc/logging/log4j/trunk/contribs/ 中查找 基于shadit的答案。如果可以通过启动哪个类的主方法来标识每个作业,则可以使用包含已启动类的全名的系统属性
我将它与TimestampFileAppender一起使用,如下所示:
这样,当我在Eclipse中进行开发时,我为我运行的每个新进程都获得了一个新的日志文件,该文件由具有main方法的类的类名及其启动时间标识。 您可以编写自己的附加程序来组成自己的文件名,也许可以使用[File.createTempFile](http://java.sun.com/j2se/1.5.0/docs/api/java/io/File .html#createTempFile(java.lang.String,java.lang.String))方法。如果 log4j.logger.com.foo.admin =,AdminFileAppender 这是执行此任务的另一种方法。.com.foo.admin是完整的程序包名称。 您可以实现以下内容:
如果您愿意,我可以通过邮件向您发送一些代码... 您可以为每个作业指定和添加汤姆。假设您有2个作业,分别对应于两个不同的Java包com.tom.firstbatch和com.tom.secondbatch,在log4j.xml中您将拥有类似的内容:
您可以在初始化作业时以编程方式配置log4j。 您还可以在运行时通过系统属性设置log4j.properties文件。从手册:
假设您正在通过不同的Java命令运行作业,这将使它们能够对每个作业使用不同的log4j.properties文件和不同的文件名。 没有关于您的工作如何运行的具体知识,很难说! |
最新内容
相关内容
linux编译完运行命令?
linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,在linux中编译C输入完程序后输入个:wq然后按什么键就然后就回到了linux命令程序运行?
linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Linux中如何启动进程?进程调度命令有哪些?实现调度启动进程的方法有linux设置日志命令行?
linux设置日志命令行?,异常,系统,实时,日志,管理,信息,对比,项目,名称,情况,Linux运维知识:从命令行如何查看Linux日志如下图所示,先cd到我们需linux运行多个命令?
linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,linux多个用户同时执行命令会冲突吗不会冲突。解释:用户登录linux的linux运行命令查看?
linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,linux查看进程命令首先打开xshell软件,连接上linux服务器,使用指令pslinux中命令运行软件?
linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,如何用命令行在Linux下安装软件?首先启动CentOS7,在VMware中点击上linux收集日志的命令?
linux收集日志的命令?,系统,实时,信息,对比,日志,名称,时间,命令,文件,事件,如何实时查看linux下的日志tail 命令:可以实时查看文件的最后几行脚本linux上运行命令?
脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,typescript脚本中怎样运行Linux命令?1、Script可用于记录当前用户linux取日志的命令?
linux取日志的命令?,系统,信息,对比,日志,时间,实时,名称,命令,文件,事件,linux中怎样查看日志less /var/log/syslog 该命令会打开 /var/log/slinux重启日志命令?
linux重启日志命令?,系统,电脑,时间,情况,日志,信息,实时,官网,对比,标准,如何查看linux的重启记录,1、last命令可以用于显示用户登录情况。返linux日志拷贝命令?
linux日志拷贝命令?,系统,信息,下来,服务,位置,数据,文件,命令,日志,指令,Linux文件拷贝命令?1、linux系统使用cp命令即可将一个文件夹里面的linux运行命令的脚本?
linux运行命令的脚本?,系统,服务,工具,脚本,意外,技术,分析,文件,方法,命令,sh文件在linux下如何运行Linux下面运行 SH文件步骤如下:查看目录sh