Java log example

  1. Logrecord filter

import java.util.logging.Filter;

import java.util.logging.Level;

import java.util.logging.LogRecord;

import java.util.logging.Logger;

public class SimpleFilter {

private static Logger logger = Logger.getLogger("SimpleFilter");

static class Duck {

};

static class Wombat {

};

static void sendLogMessages() {

logger.log(Level.WARNING, "Aduck in the house!", new Duck());

logger.log(Level.WARNING, "A Wombat at large!", newWombat());

}

public static void main(String[] args) {

sendLogMessages();

logger.setFilter(newFilter() {

public boolean isLoggable(LogRecord record){

Object[] params = record.getParameters();

if (params == null)

return true; // No parameters

if (record.getParameters()[0]instanceof Duck)

return true; // Only log Ducks

return false;

}

});

logger.info("After setting filter..");

sendLogMessages();

}

}

Output:

Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessages

WARNING:A duck in the house!

Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessages

WARNING:A Wombat at large!

Aug 28,2013 11:46:04 AM SimpleFilter main

INFO:After setting filter..

Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessages

WARNING:A duck in the house!

注:重写isLoggable方法可以对logrecord对象进行过滤。

2. Simple for Formatter Example

import java.util.logging.ConsoleHandler;

import java.util.logging.Formatter;

import java.util.logging.Handler;

import java.util.logging.LogRecord;

import java.util.logging.Logger;

public class SimpleFormatterExample {

private static Logger logger = Logger.getLogger("SimpleFormatterExample");

private static void logMessages() {

logger.info("Line One");

logger.info("Line Two");

}

public static void main(String[] args) {

logger.setUseParentHandlers(false);

Handler conHdlr = new ConsoleHandler();

conHdlr.setFormatter(new Formatter() {

public String format(LogRecord record) {

return record.getLevel() + "  : "

+ record.getSourceClassName() + " -:- "

+ record.getSourceMethodName() + " -:- "

+ record.getMessage() + "\n";

}

});

logger.addHandler(conHdlr);

logMessages();

}

}

Output:

INFO  : SimpleFormatterExample -:- logMessages -:- Line One

INFO  : SimpleFormatterExample -:- logMessages -:- Line Two

注:可以对输出的log格式进行特定格式化。

3. Format log output by overriding tostring()function,

import java.util.logging.Level;

import java.util.logging.LogRecord;

public class PrintableLogRecord extends LogRecord {

public PrintableLogRecord(Level level, String str) {

super(level, str);

}

public StringtoString() {

String result = "Level<" + getLevel() + ">\n" + "LoggerName<"

+ getLoggerName() + ">\n" + "Message<" + getMessage() + ">\n"

+ "CurrentMillis<" + getMillis() + ">\n" + "Params";

Object[] objParams = getParameters();

if (objParams == null)

result += "<null>\n";

else

for (int i =0; i < objParams.length; i++)

result += "  Param # <" + i + " value "

+ objParams[i].toString() + ">\n";

result += "ResourceBundle<" + getResourceBundle()

+ ">\nResourceBundleName<" + getResourceBundleName()

+ ">\nSequenceNumber<" + getSequenceNumber()

+ ">\nSourceClassName<" + getSourceClassName()

+ ">\nSourceMethodName<" + getSourceMethodName()

+ ">\nThreadId<" + getThreadID() + ">\nThrown<" +getThrown()

+ ">";

return result;

}

public static void main(String[] args) {

PrintableLogRecord logRecord = new PrintableLogRecord(Level.FINEST,

"SimpleLog Record");

System.out.println(logRecord);

}

}

Output:

Level<FINEST>

LoggerName<null>

Message<SimpleLog Record>

CurrentMillis<1377662640451>

Params<null>

ResourceBundle<null>

ResourceBundleName<null>

SequenceNumber<0>

SourceClassName<null>

SourceMethodName<null>

ThreadId<10>

Thrown<null>

4.  email log

].equals(; i < toAddr.length; i++)
        to[i] = new InternetAddress(toAddr[i]);
      mimeMsg.setRecipients(Message.RecipientType.TO,to);
      mimeMsg.setSubject(subject);
      mimeMsg.setText(message);
      Transport.send(mimeMsg);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
}

Java log code example的更多相关文章

  1. Java Log Viewer日志查看器

    工欲善其事必先利其器 在投奔怒海--一个Domino老程序猿眼里的Java开发我提到眼下所做的Java开发中遇到的大量日志之问题. server控制台刷屏似地滚动,日志文件飞快地增长,debug的时候 ...

  2. Artistic Style 3.1 A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective‑C, C#, and Java Source Code

    Artistic Style - Index http://astyle.sourceforge.net/ Artistic Style 3.1 A Free, Fast, and Small Aut ...

  3. Java相关|Code Review Checklist(Server)

    安全 所有入参均经过校验,包括验证参数数据类型.范围.长度,尽可能采用白名单形式验证所有的输入.对于非法请求,记录WARN log.参考Input Validation Cheat Sheet:前后端 ...

  4. java log日志的输出。

    在Spring框架中添加日志功能: pom.xml <dependency> <groupId>log4j</groupId> <artifactId> ...

  5. ndk-gdb 对java/native code联合调试(升级版)

    之前写过一篇 关于android native 开发,调试的文章(http://www.cnblogs.com/yaozhongxiao/archive/2012/03/13/2393959.html ...

  6. Effective Java提升Code Coverage代码涵盖率 - 就是爱Java

    虽然我们已经有了测试程序,但是如何得知是否已完整测试了主程序?,透过Code Coverage代码涵盖率,我们可以快速地得知,目前系统中,有多少程序中被测试过,不考虑成本跟投资效益比,涵盖率越高,代表 ...

  7. java Log日志规范

    Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...

  8. 西交利物浦大学Java PAPER CODE: CSE105/12-13/S1/Resit Coursework

    Question 6:What is an accessor method?What is a mutator method? 答案参考:http://www.xmsydw.com Number An ...

  9. [转]JetBrains IntelliJ IDEA 13 Keygen (Java Source Code)

    转载:http://www.rover12421.com/2013/12/09/jetbrains-intellij-idea-13-keygen-java-source-code.html JetB ...

随机推荐

  1. 只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果

    只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果.这个题目用图表示如下: 如果将题目换成“只用css实现每行四列,加载完一行后数据自动填充到下一行”,那这个问题就简单多了,相信大家都 ...

  2. Java Sleep() 与 Wait()的机制原理与区别

    一.概念.原理.区别    Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行. 回 ...

  3. Delphi TRichEdit加载word内容

    procedure TForm1.btn6Click(Sender: TObject);var WordApp: Variant; //声明一个word对象beginWordApp := Create ...

  4. HDU-3001 Travelling

    http://acm.hdu.edu.cn/showproblem.php?pid=3001 从任何一个点出发,去到达所有的点,但每个点只能到达2次,使用的经费最小.三进制 Travelling Ti ...

  5. 一个【wchar_t】引发的学案

    今天在查cout  wcout区别的时候,看到一篇博客(http://blog.csdn.net/hikaliv/article/details/4570956) 里面讲到了wchar_t ----- ...

  6. springmvc基础知识

    springmvc框架,类似于struts,主要用于MVC的控制层 spring的简单配置(非注解):  spring-mvc.xml文件(springMVC框架的基本文件) web.xml文件 ja ...

  7. 基于GPL329xx linux平台电容屏gsl1680的驱动调试分析

    因客户有用到了gsl1680 7寸电容屏,所以拿了一块过来,便在329xx的平台上面开始调试了. 大概浏览了一下所提供的资料,只有介绍模组的资料跟一份中文版的datasheet,datasheet只是 ...

  8. Ubuntu 12.04 安装wine1.7

    从源码安装wine 我的系统环境:ubuntu 12.04.4 X64 wine版本:wine-1.7.12.tar.bz2 解压:tar -xvf wine-1.7.12.tar.bz2 进入win ...

  9. zabbix统一脚本监控方式

    几周的zabbix使用之后几点心得,暂时记在这儿 简单命令监控,直接配置Userparameter参数,以应用来分类conf文件,将不同应用的配置写在不同的conf文件里,并将之放到统一的配置引入目录 ...

  10. 【Spark学习】Apache Spark集群硬件配置要求

    Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4135912.html 目录 存 ...