当前位置:首页 » 编程语言 » java的logging

java的logging

发布时间: 2022-12-19 01:34:12

1. 在java中如何使用记录日志API

import java.util.logging.*;
public class BasicLoggingExample {
public static void main(String args[])
{
Logger logger = Logger.getLogger("BasicLoggingExample");

logger.log(Level.INFO, "Test of logging system");
}
}
getLogger
public static Logger getLogger(String name)为指定子系统查找或创建一个 logger。如果已经创建了具有给定名称的 logger,则返回该 logger。否则创建一个新的 logger。
如果创建了新的 logger,则根据 LogManager 的配置来其配置日志级别,并将日志输出发送到其父处理程序。日志配置注册在 LogManager 全局命名空间内。

参数:
name - logger 的名称。这应该是一个圆点分隔的名称,并且通常应该基于子系统的包名或类名(如 java.net 或 javax.swing)。

log
public void log(Level level,String msg)记录一条不带参数的消息。
如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的消息转发到所有已注册的输出 Handler 对象。

参数:
level - 某个消息级别标识符,例如 SEVERE。
msg - 字符串消息(或消息类别中的键)。

2. java.util.logging.logger;怎么使用

一、创建Logger对象

static Logger getLogger(String name)
为指定子系统查找或创建一个 logger。
static Logger getLogger(String name, String resourceBundleName)
为指定子系统查找或创建一个 logger。
注意:name是Logger的名称,当名称相同时候,同一个名称的Logger只创建一个。

二、Logger的级别

比log4j的级别详细,全部定义在java.util.logging.Level里面。
各级别按降序排列如下:
SEVERE(最高值)
WARNING
INFO
CONFIG
FINE
FINER
FINEST(最低值)
此外,还有一个级别 OFF,可用来关闭日志记录,使用级别 ALL 启用所有消息的日志记录。

logger默认的级别是INFO,比INFO更低的日志将不显示。
Logger的默认级别定义是在jre安装目录的lib下面。
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO

三、简单实例

public class TestLogger {
public static void main(String[] args) {
Logger log = Logger.getLogger("lavasoft");
log.setLevel(Level.INFO);
Logger log1 = Logger.getLogger("lavasoft");
System.out.println(log==log1); //true
Logger log2 = Logger.getLogger("lavasoft.blog");
log2.setLevel(Level.WARNING);

log.info("aaa");
log2.info("bbb");
log2.fine("fine");
}
}

3. 如何在JAVA中使用日志文件

import java.util.logging.*;

public class LoggingExample1 {
public static void main(String args[])
{
try{
LogManager lm = LogManager.getLogManager();
Logger logger;
FileHandler fh = new FileHandler("log_test.txt");

logger = Logger.getLogger("LoggingExample1");

lm.addLogger(logger);
logger.setLevel(Level.INFO);
fh.setFormatter(new XMLFormatter());

logger.addHandler(fh);
// root logger defaults to SimpleFormatter. We don't want messages logged twice.
//logger.setUseParentHandlers(false);
logger.log(Level.INFO, "test 1");
logger.log(Level.INFO, "test 2");
logger.log(Level.INFO, "test 3");
fh.close();
} catch(Exception e) {
System.out.println("Exception thrown: " + e);
e.printStackTrace();
}
}
}
给个例子,这个是java 专家编程的第一章中的例子,希望对你有帮助。。。

4. java打印日志的几种方式

在Java 中实现记录日志的方式有很多种, 下面给你简单介绍四种:

  1. 最简单的方式,就是system.println.out(error) ,这样直接在控制台打印消息了。

  2. Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。

  3. log4j , 最强大的记录日志的方式。 可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。

  4. commons-logging, 最综合和常见的日志记录方式, 经常是和log4j 结合起来使用。

5. java的Baselogger文件在哪里看

lib文件里查询。
系统自带的包还有程序员设置的包都在lib文件夹下面。
在Java中,自带了一个 javautilloggingLogger由于有log4j的存在,这个再带的logger貌似使用比较少,首先先定制属性以及初始格式化,此时程序员定义lonnger时,jvm虚拟机也会自动生成一个jvm,所以返回时会生成两个。

6. java commons.logging 包问题。

Project -> Properties ->java build path-> libraries->add external jars 选择你要导入得commons-logging.jar这个包。没必要删除什么,添加这个就行了。 这个jar包可以去官网http://commons.apache.org/logging/download_logging.cgi下载

7. java logger 参数怎么写

Logger所对应的属性文件在安装jdk目录下的jre/lib/logging.properties
logging.properties文件中的
handlers= java.util.logging.ConsoleHandler 将日志内容输出到控制台
handlers= java.util.logging.FileHandler 将日志文件输出到文件中
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler 将日志内容同时输出到控制台和文件中

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO //日志输出级别

java.util.logging.FileHandler.pattern = %h/java%u.log 为生成的输出文件名称指定一个模式。
模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:
"/" 本地路径名分隔符
"%t" 系统临时目录
"%h" "user.home" 系统属性的值
"%g" 区分循环日志的生成号
"%u" 解决冲突的惟一号码
"%%" 转换为单个百分数符号"%"
如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。

java.util.logging.FileHandler.limit = 50000 限制文件的大小,以字节为单位
java.util.logging.FileHandler.count = 1 指定有多少输出文件参与循环(默认为 1)。
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter 指定要使用的 Formatter 类的名称(默认为java.util.logging.XMLFormatter)。 另外一个是:java.util.logging.SimpleFormatter。XMLFormatter是以xml样式输出,SimpleFormatter是以普通样式输出。
java.util.logging.FileHandler.append 指定是否应该将 FileHandler 追加到任何现有文件上(默认为 false)。

8. java.util.logging.Logger的用法

这是我项目中的日志文件
#定义控制台输出A1
#log4j.appender.A1=org.apache.log4j.ConsoleA#ppender这句表明A1是输出到控制台
#下面2句R是滚动日志文件,且保存在#logs/log4jdebug.log
#log4j.appender.R=org.apache.log4j.RollingFi#leAppender
#log4j.appender.R.File=logs/log4jdebug.log
#file同R一样,在不同的地方再次保存了一个日志
#文件,其他的就是定义显示样式拉,比如以文本的
#形式还是html格式,以及显示格式了,比如显示的
#时候是否显示系统时间,是从那个类,好多行打印
#出来的消息等等.
log4j.rootLogger=DEBUG, A1 , R , file
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=logs/log4jdebug.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
#定义一个名字为file的Appender,它的类型是RollingFileAppender。

log4j.appender.file=org.apache.log4j.RollingFileAppender
#设置最大文件尺寸为1MB,当日志文件大小达到1MB时,开始备份到备份文件中。

log4j.appender.file.MaxFileSize=1MB
#设置备份文件的最大数目为2个文件。

log4j.appender.file.MaxBackupIndex=2
#指定file Appender输出的日志文件的名字和存放路径。

#log4j.appender.file.File=F:/JSPLesson/ch19/WEB-INF/ch19roll.log

log4j.appender.file.File=logs/log4jdebug.html

#file Appender使用的Layout的是PatternLayout。

log4j.appender.file.layout=org.apache.log4j.PatternLayout

#file Appender使用的Layout的是HTMLLayout。

log4j.appender.file.layout=org.apache.log4j.HTMLLayout
#LocationInfo用于指定打印日志信息的语句所在的文件名和行号是否输出,缺省值为false。

log4j.appender.file.layout.LocationInfo=true
把这个文件存为log4j.properties
放在WEB-INF目录下就可以了.
我说楼主,这没什么难得.
class helloworld{
private static Logger log=Logger.getLogger(helloworld.class);
public static void main(String args[]){

log.debug("hello,world!");
log.info("hello,world");
log.fatal("hello,world");
}
}
你要多动手啊.

9. Spring Boot Logging 配置

Spring Boot 能够使用Logback, Log4J2 , java util logging 作为日志记录工具。Spring Boot 默认使用Logback作为日志记录工具。日志默认输出到控制台但也能输出到文件中。我们通过spring-boot-starter-logging 加入Logback依赖,其实只要我们加入任意的Spring Boot starter 都会默认引入spring-boot-starter-logging,因此 我们不需要分开加入他们。

logging.level.* : 作为package(包)的前缀来设置日志级别。
logging.file : 配置日志输出的文件名,也可以配置文件名的绝对路径。
logging.path : 配置日志的路径。如果没有配置 logging.file ,Spring Boot 将默认使用spring.log作为文件名。
logging.pattern.console : 定义console中logging的样式。
logging.pattern.file : 定义文件中日志的样式。
logging.pattern.level : 定义渲染不同级别日志的格式。默认是%5p.
logging.exception-conversion-word : .定义当日志发生异常时的转换字
PID : 定义当前进程的ID

下面将讨论在 application.properties , application.ym , Logback XML 中配置Logback以及在Spirng Boot 应用中使用Log4J2.

logging.level设置日志级别。我们可以使用TARCE , DEBUG , INFO , WARN , ERROR , FATAL , OFF 。可以使用root级别和package级别来控制日志的输入级别。创建一个具有以下依赖关系的应用程序。

使用 srcmain esourcesapplication.properties 配置日志级别

使用 srcmain esourcesapplication.yml

Spring Boot 默认把日志输入到console,如果我们要把日志输入到文件中,需要配置logging.file 或者logging.path属性性。logging.file属性用来定义文件名。他不仅仅可以配置文件名,也可以路径+文件名。

在这种情况下mylogfile.log将在根目录中创建。我们也可以为为mylogfile.log分配一个路径,如concretepage/mylogfile.log。这种情况下我们将在相对根目录下创建concretepage/mylogfile.log。我们也可以为日志文件配置绝对路径。
application.yml 中配置

配置logging.path或者logging.path属性将日志输出到文件夹中。logging.path属性用来定义日志文件路径
application.properties 中配置logging.path属性

将会相对根路径下创建concretepage/logs/spring.log ,也可以配置绝对路径

application.yml 配置

通过设置logging.patter.console属性我们能改变输出到console的日志样式。日志样式包括时间,日志级别,线程名,日志名以及消息。我们可以按我们的喜好改变日志样式。
application.properties

application.yml

改变文件中的日志样式我们需要设置logging.pattern.file属性。首先通过logging.file或logging.path属性,把日志记录到文件中。

通过logging.path属性将在根目录下创建concretepage/logs并默认使用spring.log作为文件名。logging.pattern.console是设置console的日志样式
application.yml

通过命令行改变日志的输出级别
Sping Boot 默认输出ERROR , WARN , INFO 级别的日志。我们可以通过命令行使能DEBUG ,TRACE级别的日志输出,效果是跟配置文件一样的。想象我们有一个名为my-app.jar的可执行的JAR包我们可以在启动应用是使能DEBUG级别日志输出。

在application.properties中配置

application.yml

相同的方式使能TRACE级别的日志

application.properties

application.yml

在应用程序中记录日志
创建一个SLF4J的例子,首先获得org.slf4j.Logger的实例。

在application.properties配置包com.concretepage日志记录级别

输出

使用Logback XML 文件
Sping Boot中默认使用logback, 我们可以在application.properties或者application.yml中设置日志级别。如果想使用XML配置Logback,我们需要在类路径下创建logback-spring.xml文件
srcmain esourceslogback-spring.xml

使用自定义日志:Log4J2
我们使用任何的starter,默认加入Logback 依赖spring-boot-starter-logging。为了使用Log4J2,我们首先要去除spring-boot-starter-logging并且引入spring-boot-starter-log4j2 依赖

现在我们可以在类路径下创建并配置log4j2-spring.xml

原文: http://www.concretepage.com/spring-boot/spring-boot-logging-example

10. java的logger写日志的时候,能不覆盖旧日志,直接写新日志么

可以的,你在你的log.properties中增加下面一个设置就可以了

java.util.logging.FileHandler.count = 100

表示总共保存100个文件,到了100个文件后才会开始覆盖

这个数字你可以自己随便来改。

如果你要进行全局的日志配置的修改就直接改jre下面的log.properties,否则就改你自己专用的log.properties。

热点内容
win10流媒体服务器怎么搭建 发布:2025-01-27 12:58:04 浏览:383
组合公式的算法 发布:2025-01-27 12:45:50 浏览:277
落樱小屋哪里下载安卓 发布:2025-01-27 12:35:13 浏览:71
微信服务器IP跳转 发布:2025-01-27 12:26:54 浏览:73
oracle自动备份脚本linux 发布:2025-01-27 12:21:40 浏览:936
pop服务器密码怎么填 发布:2025-01-27 12:20:02 浏览:968
oraclesqlnumber 发布:2025-01-27 12:04:22 浏览:849
如何看三才配置数理暗示力 发布:2025-01-27 12:04:15 浏览:811
我的世界离线2b2t的服务器 发布:2025-01-27 11:51:25 浏览:144
网站被异常篡改访问有风险 发布:2025-01-27 11:50:01 浏览:431