一、如何将log输出到文件中?

1、配置xml文件

 <?xml version="1.0" encoding="UTF-8"?>
 <Configuration>
     <!-- 将log信息记录到指定文件夹中 -->
     <!-- “.”表示当前路径, ./logs表示将log信息存放到该项目的logs文件夹中 -->
     <Properties>
         <Property name="basePath">./logs</Property>
     </Properties>
     <!-- appenders表示日志输出的位置 -->
     <Appenders>
         <!-- 给记录日志的文件命名 -->
         <RollingFile
             name="File"
             fileName="${basePath}/app.log"
             filePattern="${basePath}/app-%d{yyyy-MM-dd}.log">
             <!-- 设置输出的log信息格式 -->
             <PatternLayout
                 pattern="%d{HH:mm:ss.SSS} %-5level %c{2} -%msg%n" />
             <Policies>
                 <!-- 基于时间触发生成文件的策略 -->
                 <!-- interval="1"表示每隔一天就会创建新的日志文件 -->
                 <TimeBasedTriggeringPolicy
                     interval="1"
                     modulate="true" />
                 <!-- 基于大小触发生成文件的策略 -->
                 <SizeBasedTriggeringPolicy size="100 KB" />
             </Policies>
         </RollingFile>
         <!-- 表示在控制台上输出信息 -->
         <Console name="Console">
             <!-- 设置输出的log信息格式 -->
             <PatternLayout
                 pattern="%d{HH:mm:ss.SSS} %-5level %c{2} -%msg%n" />
         </Console>
     </Appenders>
     <Loggers>
         <!-- 定义级别 -->
         <Root level="trace">
             <!-- 输出日志的目的地 -->
             <AppenderRef ref="File" />
         </Root>
     </Loggers>
 </Configuration>

注:

1、<RollingFile name="File" fileName="${basePath}/app.log" filePattern="${basePath}/app-%d{yyyy-MM-dd}.log">:
fileName="${basePath}/app.log":表示日志信息文件存放的路径和文件名
filePattern="${basePath}/app-%d{yyyy-MM-dd}.log":设置日志文件从第二天开始,生成的文件名后面都加上年月日,这样有助于我们区分日志的生成时间。2、log文件中设置了2中输出方式,一种是直接输出到控制台,一种是输出到文件中,本文案例是为了演示输出到文件中,因此
<AppenderRef ref="File" />  ref要设置为File。

2、运行代码
 package log4jtutorial;

 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;

 public class LoggingFile {

     private static final Logger log = LogManager.getLogger(LoggingFile.class.getName());
     public static void main(String[] args) {

             log.debug("Debug message logged");
             log.error("Error message logged");
             log.fatal("Fatal message logged");
     }
 }

3、查看生成的日志信息

如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。

内容具有连惯性,未标注的地方可以看前面的博客,这是一整套关于ava+selenium自动化的内容,从java基础开始。

欢迎关注,转载请注明来源。

章节十五、8-配置文件File Logging的更多相关文章

  1. centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课

    centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节 ...

  2. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  3. 我的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  4. 别人的的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  5. thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

    原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL ...

  6. Gradle 1.12用户指南翻译——第四十五章. 应用程序插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  7. JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!

    JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...

  8. Gradle 1.12 翻译——第十五章. 任务详述

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  9. Gradle 1.12用户指南翻译——第二十五章. Scala 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  10. 菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机

    菜鸟玩云计算之十五:在Ubuntu上创建和管理Redhat虚拟机 chedou@hgdb.net 虚拟机给工作带来巨大的便利,不仅仅体现在资源的按需使用,而且配置的迁移特别方便.本文将使用Ubuntu ...

随机推荐

  1. ES5新语法forEach和map及封装原理

    ### forEach 在es5中提供了forEach方法进行遍历,其实就是模仿了jQuery中each方法,不过将 i 于v进行了调换,下面两种方法进行对比一下 var arr = [ 11, 22 ...

  2. 使用C#类向数据库添加数据的例子源码

    在上一篇中,增加了sql server数据库操作类SqlOperator,用于操作sql server数据库.还有一个SqlStringHelper类,用于处理sql语句的单引号.那么这两个类怎么使用 ...

  3. EasyCriteria 3.0 发布

    EasyCriteria 3.0 发布了,这是一个全新的版本,进行了大量的重构.官方发行说明请看:http://uaihebert.com/?p=1898 EasyCriteria 是一个轻量级的框架 ...

  4. hihoCoder#1055 : 刷油漆 (树形DP+01背包)

    题目大意:给一棵带点权的树,现在要从根节点开始选出m个连通的节点,使总权值最大. 题目分析:定义状态dp(u,m)表示在以u为根的子树从根节点开始选出m个点连通的最大总权值,则dp(u,m)=max( ...

  5. sublime安装DocBlockr注释插件

    点击sublime的菜单栏 view->show console :现在打开了控制台, 这个控制台有上下两栏, 上面一栏会实时显示sublime执行了什么插件,输出执行结果, 如果你安装的某个插 ...

  6. U-Boot--配置过程分析

    arm核:arm920t    2410 uboot版本:u-boot1.1.6 通过readme可以知道配置执行make smdk2410_config命令. 顶层Makefile : smdk24 ...

  7. UI进阶 SQLite错误码

    #define SQLITE_OK 0 /* 成功 | Successful result */ /* 错误码开始 */ #define SQLITE_ERROR 1 /* SQL错误 或 丢失数据库 ...

  8. es6笔记7^_^class

    ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板.通过class关键字,可以定义类. 部分来自JavaScript ES6 class指南.mozilla https: ...

  9. nw.js---开发一个百度浏览器

    使用nw.js开发一个简单的百度浏览器就很简单了,只需要在配置里面写入: { // "main": "index.html", "main" ...

  10. CentOS 端口映射

    一个合作单位给我创建了十几台虚拟服务器做支撑.但是只给负载均衡绑定了公网IP.由于这个支撑的服务需要测试和调优,经常要往服务器上传class或者修改数据库.为了方便操作,我打算在负载均衡服务器上做端口 ...