用Log4j自动生成日志

log4j--动态打印日志文件到指定文件夹 【代码】log4j--动态打印日志文件到指定文件夹。 阅读详情

         Log4j是Apache基金会的一个项目,它能为Java开发着提供功能强大使用方便的各种日志处理.当然它的版本不限于Java,还有C/C++等主流语言.我觉得它就象一把非常实用的锋利小刀,让我们的写程序时更加如鱼得水.

         Log4j输出的信息分如下几类:ALL,DEBUG,INFO,ERROR,FATAL,级别从低到高,输出的内容是从多到少.从字面意思即可看出大概,ALL指输出所有信息;DEBUG指调试信息;INFO指一般信息;ERROR指错误信息;FATAL指致命的错误信息。

       输出的信息级别和内容我们可以在程序里面设置,但缺点就不够灵活,并且无法在程序运行期间进行参数调整。通过XML或Property配置文件可以在外部控制Logger的输出,原理都一样的,只是表现形式不一样,看个人的习惯了。下面主要讲一下如何使用Property文件来灵活配置Log4j的输出。

       在Log4j中你可以让信息输出到控制台(Console)、文件、远程数据数等中的其中一个或多个当中。 

      首先我们要先声明信息输出的级别,并且 为了能把信息输出到指定的目的地,我们要指定输出方案,如下所示:

    log4j.rootLogger = DEBUG, A1,A4

   DEBUG为输出信息的级别,A1,A4分别为输出方案的名称,下面我们来定义方案的具体参数。

    指定该输出方案的信息输出目的地为控制台:

     log4j.appender.A1 = org.apache.log4j.ConsoleAppender

     设定输出的布局为模式布局:
     log4j.appender.A1.layout = org.apache.log4j.PatternLayout

    指定模式的具体参数:
    log4j.appender.A1.layout.ConversionPattern =[%d{HH:mm:ss}] [%t] %-5p - %m %n

    每个参数前要加%来说明,其中:

    %d:日期(date),如:yyyy-MM-dd,yyyy-MM-dd HH:mm:ss等

    %t:线程名称(Thread)

     %-5p:信息优先级(Priority),宽度为5,左对齐。如DEBUG,FATAL等

      %m:输出信息(Message)

      %n:回车换行

       还有其它几个象%c,%C,%F等

     上面的方案A1指的是把信息输出到控制台,并且输出的格式按指定的格式输出。

      我们还可以指定把信息输出到文件当中,如下为普通文件输出方案:

     log4j.appender.A2 = org.apache.log4j.RollingFileAppender
     log4j.appender.A2.File = logs//test.log
     log4j.appender.A2.MaxFileSize = 1MB
     log4j.appender.A2.MaxBackupIndex = 3
     log4j.appender.A2.layout = org.apache.log4j.PatternLayout
     log4j.appender.A2.layout.ConversionPattern =[%d] %-4r [%t] %-5p %c %x - %m %n

     输出指定的文件test.log当中,并且指定该文件最大不超过1MB,超过之后将清除后再写入。当然也可以直接用FileAppender,不进行Rolling,那么所以的日志信息都将追加到原信息的后面。MaxBackupIndex指的是最大备份数目。以上面文件为例,当test.log到达1MB,则它直接被修改成test.log.1,如果这个文件已存在,则修改为test.log.2,直到MaxBackupIndex。新的日志信息,将重新生成文件test.log。当下一次达到1MB时,此时test.log.1,test.log.2,test.log.3都已存在,则直接把test.log.3删除,把test.log修改成test.log.3。

      把信息输出到远程数据库当中:

     # 定义A3输出到数据库
     log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppender
     log4j.appender.A3.BufferSize = 40
     log4j.appender.A3.Driver = sun.jdbc.odbc.JdbcOdbcDriver
     log4j.appender.A3.URL = jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=MobileDB.mdb
     log4j.appender.A3.User = 
     log4j.appender.A3.Password = 
     log4j.appender.A3.layout = org.apache.log4j.PatternLayout
     log4j.appender.A3.layout.ConversionPattern = INSERT INTO log4j(createDate, thread, priority, category, message) values('%d', '%t', '%-5p', '%c', '%m')

     指定输出方案为JDBCAppender,即能过JDBC把日志自动写入到远程数据库当中。BufferSize指定缓冲区的大小,当输出内容达到缓冲区的大小时,就把数据写入数据库一次。下面的参数依次为指暄数据库驱动名称、数据库URL地址、数据库登录用户名和密码,模式布局和Select语句。
     

    我们也可以把信息输出到HTML文件当中,并且是按时间段自动生成文件,比如,每隔一个小时或一天、半天生成一个HTML文件:

     log4j.appender.A4 = org.apache.log4j.DailyRollingFileAppender
     log4j.appender.A4.File = logs//log.html
     log4j.appender.A4.DatePattern='.'yyyy-MM-dd-HH'.html'
     log4j.appender.A4.layout = org.apache.log4j.HTMLLayout

     第一个参数为指定输出方案为按日期滚动的文件方案。第二个参数指定文件名,第三个指定日期模式,最后一个指定布局为HTML布局。上面的设置会每隔一个小时产生一个HTML文件名,文件名为:log.html.2006-03-24-08.html的样子。
   

      完整的配置文件log4j.properties如下:

     log4j.rootLogger = DEBUG, A1,A4

     log4j.appender.A1 = org.apache.log4j.ConsoleAppender
     log4j.appender.A1.layout = org.apache.log4j.PatternLayout
     log4j.appender.A1.layout.ConversionPattern =[%d{HH:mm:ss}] [%t] %-5p - %m %n


     log4j.appender.A2 = org.apache.log4j.RollingFileAppender
     log4j.appender.A2.File = logs//test.log
     log4j.appender.A2.MaxFileSize = 1KB
     log4j.appender.A2.MaxBackupIndex = 3
     log4j.appender.A2.layout = org.apache.log4j.PatternLayout
     log4j.appender.A2.layout.ConversionPattern =[%d] %-4r [%t] %-5p %c %x - %m %n

     #11区 定义A3输出到数据库
     log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppender
     log4j.appender.A3.BufferSize = 40
     log4j.appender.A3.Driver = sun.jdbc.odbc.JdbcOdbcDriver
     log4j.appender.A3.URL = jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=MobileDB.mdb
     log4j.appender.A3.User = 
     log4j.appender.A3.Password = 
     log4j.appender.A3.layout = org.apache.log4j.PatternLayout
     log4j.appender.A3.layout.ConversionPattern = INSERT INTO log4j(createDate, thread, priority, category, message) values('%d', '%t', '%-5p', '%c', '%m')


     log4j.appender.A4 = org.apache.log4j.DailyRollingFileAppender
     log4j.appender.A4.File = logs//log.html
     log4j.appender.A4.DatePattern='.'yyyy-MM-dd-HH'.html'
     log4j.appender.A4.layout = org.apache.log4j.HTMLLayout

 

     在程序里面只需声明使用Property配置文件来控制输出就行了,如下所示:

    static Logger logger = Logger.getLogger(DHMain.class);

     public static void main(String[] args) {
          PropertyConfigurator.configure("conf//log4j.properties");
          logger.debug("启动..." );

     }

    有了Log4j,我们完全可以抛弃System.out了,用它吃力又不讨好,何苦呢?

  

log4j指定类的日志输出到指定文件夹中 - 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->业务需求需要将登录、登出、办理开始到结束流程的日志以特定的json格式,输出到对应的日志文件中,并且定期更新日志。--interval属性用来指定多久滚动一次,默认是1 hour -->-- 定义日志存储的路径 --> 阅读详情

相关推荐

示范如何在android工程中使用log4j记录日志

示范如何在android工程中使用log4j记录日志

Log4j输出日志到单独日志文件

正常情况下log4j的info日志会打印到统一的日志文件,当需要查看特定功能的执行情况,打印特定功能到指定日志文件,方法如下:log4j.properties### set log levels ### log4j.rootLogger = INFO , C , D , E ### console ### log4j.appender.C = org.apache.log4j.ConsoleAp...

雪落夜的专栏 2万+

原恒星尘埃生长的三维MHD模拟与湍流效应研究

星际尘埃演化是恒星形成过程中的关键环节,其动力学行为直接影响行星系统的构建。通过磁流体力学(MHD)模拟可以揭示尘埃颗粒从微米级到行星胚胎尺度的生长机制,其中湍流效应通过改变碰撞频率和密度结构发挥双重作用。最新研究采用COALA-RAMSES耦合框架,实现了包含自洽尘埃生长的三维非理想MHD模拟,量化了不同物理环境下尘埃尺寸分布的演化规律。这些发现不仅为解释ALMA观测数据提供理论依据,也对行星形成初期条件约束具有重要意义,特别是在湍流参数化与尘埃生长速率关系方面取得突破。

weixin_30988079的博客 382

log4j 输出日志信息到文件中

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。 log4j.properties 输出ERROR级别日志到控制台和文件中。 log4j.rootLogger:指定日志级别和输出源,用逗号隔开。 org.apache.log4j.ConsoleAppender:指定

DaiSnow的博客 2091

STM32F103RC学习(一)

STM32F103RC学习(一)

Cat_South_North的博客 6055

QT 面试题汇总

一、讲述Qt信号槽机制与优势与不足 优点:①类型安全。需要关联的信号槽的签名必须是等同的。即信号的参数类型和参数个数同接受该信号的槽的参数类型和参数个数相同。若信号和槽签名不一致,编译器会报错。 ②松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。Qt就保证了适当的槽得到了调用,即使关联的对象在运行时被删除。程序也不会奔溃。 ...

编程菜鸟 4万+

web项目通过tomcat部署在ubuntu系统中,log4j日志目录及日志文件无法自动生成

为什么80%的码农都做不了架构师?>>> ...

weixin_33856370的博客 458

BH1750光强度传感器Stm32f103驱动(已测试ok)

1. 实验:Stm32f103 驱动 bh1750采集光照强度,串口打印采集到的数据。 2. 实验准备器材 开发版:stm32f103c8t6 器件:bh1750 GY-302 开发环境:win10,KILE4 下载程序的软件:FlyMcu.exe 串口调试助手:ComAssistant.exe 3. BH1750 的接线 VCC:5V或3.3V ...

weixin_53329977的博客 8928

springboot配置log4j2日志 每日自动生成日志

pom.xml <!--Web支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除springboot自带的logback框架 -->

SuperChen12356的博客 1905

dell r630 配置raid_DELL服务器RAID配置图文教程

名称解释:Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VDPD(Physical Disk): 物理磁盘HS:Hot Spare 热备Mgmt:管理【一】创建逻辑磁盘1、按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P...

weixin_33253741的博客 3510

C#精准获取Windows已安装应用清单的完整方案

Windows已安装应用识别是IT资产管理、安全合规与自动化运维的基础能力。其核心原理在于突破文件系统表象,以注册表为可信数据源,分层解析HKLM/HKCU、64位/32位视图及MSI Products路径中的元数据。技术价值体现在可验证(如过滤SystemComponent=1)、可关联(通过ProductCode绑定补丁与许可证)、可操作(启动路径二次验证+卸载命令沙箱执行)。典型应用场景包括终端合规审计、软件资产清查、静默卸载脚本开发及多版本应用聚合分析。本文聚焦C#原生实现,覆盖注册表四路采集、La

weixin_33552698的博客 634

log4j日志目录不自动生成的问题

在学习log4j的时候一直无法将日志输出到日志文件中,原因是使用的jar包版本太低,程序不会自动生产目录和文件,需要手动创建目录,使用1.2.9(不包括1.2.9)后的版本就可以自动创建目录了。 转载于:https://www.cnblogs.com/20000ding/p/7040106.html...

weixin_30914981的博客 1167

orangepi香橙派用户名及密码修改和VNC远程登陆

1、修改 /etc/passwd用户信息文件 vim /etc/passwd #admin❌503:501::/home/admin:/bin/bash #把用户名admin改成rest #test❌503:501::/home/test:/bin/bash 2、修改 /etc/shadow用户密码文件 vim /etc/shadow #admin:Dnakfw28zf38w:8764:0:168:7::: #由于密码加密方式存放,只修改用户名即可(密码不变) #test:Dnakfw28zf38w:876

weixin_40227845的博客 5660

用Log4j自动生成日志(多种方式)输出到文件、数据库等

用Log4j自动生成日志

today1858的专栏 1万+

基于YOLOv11与相机标定的齿轮尺寸测量系统

本文详细介绍了一种基于深度学习的目标检测算法YOLOv11与相机标定技术相结合的齿轮尺寸自动测量系统。该系统能够实时检测图像中的齿轮目标,并精确测量其关键尺寸参数,包括齿顶圆直径、齿根圆直径、模数等。我们构建了完整的深度学习解决方案,包含数据采集与标注、模型训练、相机标定、尺寸测量算法以及用户友好的UI界面。本文提供了完整的代码实现,并推荐了相关的参考数据集,为工业视觉检测领域提供了实用的技术方案。关键词:YOLOv11;齿轮检测;尺寸测量;相机标定;深度学习;工业视觉python。

YOLO 411

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

用Log4j自动生成日志(转)

   Log4j是Apache基金会的一个项目,它能为Java开发着提供功能强大使用方便的各种日志处理.当然它的版本不限于Java,还有C/C++等主流语言.我觉得它就象一把非常实用的锋利小刀,让我们的写程序时更加如鱼得水.          Log4j输出的信息分如下几类:ALL,DEBUG,INFO,ERROR,FATAL,级别从低到高,输出的内容是从多到少.从字面意思即可看出大概,ALL

zhang017的专栏 1085

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

log4j自动生成日志文件配置

生成文件到默认位置: #生成日志文件 #log4j.appender.systemFile=org.apache.log4j.RollingFileAppender #按天生成 log4j.appender.systemFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.systemFile.layout=o...

weixin_30732825的博客 109

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件

http://bbs.youkuaiyun.com/topics/390635339?page=1 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件 假设 11-11日 生成comlib_20131111.log,并当这个文件大于10MB时,生成另一个文件(comlib_20131111_1.log),在大于10M时生成comlib_20121111_2.log

dos_186的博客 7573

使用log4j生成动态日志文件-文件名根据时间自动生成

log4j.propertiespeizhi

zhengchunxi 1万+

关于log4j自动生成前一天日志文件的具体时间问题

需求描述:记录每天网站访问客户端IP地址及访问内容,然后统计pv,uv问题描述:log4j自动生成每一天带日期后缀的日志,然后设置定时任务每天凌晨1点分析日志,但是有时候分析结果为空原因:当天的日志不带日期后缀,而对他进行重命名的时间是不固定的,并不是在0点的时候。比如在4月20号的第一条日志信息开始记录的时候,才对4月19号的日志重命名。解决办法:设置定时任务,在分析日志之前插入一条日志,这样可...

jzlcheng的博客 2097

【已解决】log4j没有生成日志文件、 生成日志文件、自动写入日志、log4j日志没有输出到文件、没有日志【一眼就会】

- 去掉Spring默认日志依赖-->-- 去掉Spring默认日志依赖-->--把log4j2作为主日志-->--把log4j2作为主日志-->--引用所需依赖包-->

刘贵庆的博客 1995

SpringBoot框架,使用Log4j2+Lombok引入日志的方法

SpringBoot框架,使用Log4j2+Lombok引入日志的方法

manhengwei 1892

日志框架log4j的小Demo

日志框架log4j的小Demo日志框架log4j的小Demo目录结构依赖DemoController.javaDemoApplication.javaapplication.propertieslog4j.properties项目启动时,会自动在/Users/canrenehan/Desktop路径下创建mylog.log文件,当接口被访问时,日志会被打印在控制台同时写入/Users/canrenehan/Desktop/mylog.log文件中 日志框架log4j的小Demo 目录结构 依赖

qq_44705486的博客 697

log4j2的日志滚动删除

按照时间滚动,interval = 5 的啥意思是每隔5个时间单位,生成一个文件。

zwdbc123456的博客 351
上一篇: ICTCLAS分词系统研究(三)--原子切分
下一篇: Ant实战
sinboy
博客等级 码龄25年 239粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值