动态指定log4net日志文件名称

如果是希望日志文件按常见的日期格式动态命名,没什么好说的,直接修改app.config

<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />

但我遇到的一个场景,是同一个exe要运行多个实例,如何分别写入不同的日志文件呢?

参考过 动态修改log4net组件的日志文件名

运行的结果是新的 log文件确实产生了,但是日志记录并不能写入进去,加之年代久远,也就没有跟原作者讨论的激情了

后来发现 log4Net 动态改变写入文件 , 问题完美解决。

    ‘‘‘ <summary>
    ‘‘‘ 动态指定日志文件名称
    ‘‘‘ </summary>
    ‘‘‘ <param name="logger">日志对象实例,log4net.ILog</param>
    ‘‘‘ <param name="fileName">日志输出的文件名</param>
    ‘‘‘ <remarks>一般在静态或初始化时调用</remarks>
    Public Shared Sub ChangeLogFileName(ByVal logger As ILog, ByVal fileName As String)
        Dim apdArray() As Appender.IAppender = logger.Logger.Repository.GetAppenders
        For Each apd As Appender.IAppender In apdArray
            If apd.GetType Is GetType(Appender.RollingFileAppender) Then
                logger.InfoFormat("Change Log File to {0}", fileName) ‘ 字符串会写入到 app.config 中指定的原始日志文件
                Dim rfa As Appender.RollingFileAppender = CType(apd, Appender.RollingFileAppender)
                rfa.File = fileName
                rfa.ActivateOptions()
                Exit For
            End If
        Next
    End Sub

原文地址:https://www.cnblogs.com/towerbit/p/8341452.html

时间: 2025-01-09 23:36:09

动态指定log4net日志文件名称的相关文章

log4j配置文件动态指定日志文件名称

我们在项目当中经常会使用log4j进行日志记录,偶尔会遇到一些要求,比如日志文件名称按照启动参数动态配置,而不去修改log4j.xml,比较简单的一种做法是,通过设置系统属性的方式实现,代码: 1 if(args.length>=0){ 2 System.setProperty("log4fFile", args[0]); 3 }else{ 4 System.setProperty("log4fFile","log/runtime.log"

Log4net日志文件自动按月份存放和日志独占问题的解决

让log4net日志文件自动按月份存放 log4net日志文件的作用还真不小,可以保存管理员.用户对数据库的任何操作,保存管理员和用户的登录记录,分析系统运行错误,所以不舍得随便将日志文件Delete.如果时间长了,日志文件夹一定会有很多很多日志文件,不便于管理员查看. 所以让log4net日志文件自动按月份存放是必须的,其实方法很Easy,额是突发奇想在DatePattern value中增加“yyyyMM\\”,运行后果然如额所愿. 也就是修改Web.Config文件如下: <file va

log4j:特定类的日志输出到指定的日志文件中

问题描述:我有一个类foo.bar.Baz,我想让Baz这个类的日志输出到指定的日志文件中,其它的就使用默认的配置. log4j.rootLogger=ERROR, logfile log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logfile.datePattern='-'dd'.log' log4j.appender.logfile.File=log/radius-prod.log

[Enterprise Library for .NET Framework 2.0]自定义日志路径或日志文件名称

有时候,日志输出的时候会根据时间来分类,譬如"20140821\trace.log",在Enterprise Library中通过工具配置,只能定义日志文件名称,可以通过代码修改FlatFileTraceListenerData实现或Custom Trace Listener方式, 通过代码修改FlatFileTraceListenerData实现代码如下: public static string GetTraceLogPath(string listenersName) { str

linux后台启动springboot并指定日志文件名称

如果用nohup启动jar包的话,默认的日志文件就是nohup.out,那么如果启动多个jar包的话,看日志文件就麻烦了,因为他们都会写入到nohup.out文件中. 所以我们来指定一下不同jar包的日志文件名: [[email protected] ~]$ mkdir log [[email protected] ~]$ nohup java -jar dianyixia-0.0.1-SNAPSHOT.jar > log/dianyixia.log & [1] 5861 [[email p

获取指定路径下指定类型的文件名称,并返回可用的新名称

检查磁盘上指定目录是否已经存在同名文件(本代码是检查.jpg文件类型),存在三种情况: 1:不存在,返回查询的名称 如:输入abc,返回abc 2:存在一个名称相同的文件,返回"预定义的名称+当前日期+001"的新名称 如:存在一个叫abc.jpg的文件,输入abc,返回abc20101227001 3:存在多个前缀名相同的文件,则返回比编号最大的文件大一个编号的名称 如:存在abc.jpg,abc20101227001,abc20101227002,-,abc201012270023

log4net 日志文件占用,不能及时释放

在appender 下面加 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

Log4net入门(回滚日志文件篇)

在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能.因此,有必要对日志文件按某种条件进行切分,要切分日志文件,我们可以使用"log4net.Appender.RollingFileAppender"输出源,使用该输出源我们可以按照文件大小或者日期对日志文件进行切分,下面我们分别描述之. 一.按文件大小切分日志

如何在通用权限管理系统中集成log4net日志功能

开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个组件的介绍 ”Log4net是基于.net开发的一款非常著名的记录日志开源组件.最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源, 于另外的一个非常著名的姐妹组件-log4j.现由Apache组织开发与维护.此日志架构是可灵活扩展,且通过配置文件来设置日志的属性及输出,