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. hdu 2544最短路——最短路的初次总结 UESTC 6th Programming Contest Online

    这是一道标准的模板题,所以拿来作为这一段时间学习最短路的总结题目. 题意很简单: 有多组输入数据,每组的第一行为两个整数n, m.表示共有n个节点,m条边. 接下来有m行,每行三个整数a, b, c. ...

  2. SQL知识累积

    详细介绍select的文章,展示原始数据.SQL.查询结果,以及在不同数据库下SQL应该如何写. https://en.wikipedia.org/wiki/Select_(SQL) 目录如下: Co ...

  3. 重新安装Photoshop CS6以后启动软件出现Licensing for this product has expired

    当我们卸载试用版本Photoshop CS6并且重新安装,出现Licensing for this product has expired,并且无法打开软件,这是由于证书过期导致的,解决办法是将计算机 ...

  4. linux进程调度函数浅析(基于3.16-rc4)

    众所周知,进程调度使用schedule()函数来完成,下面我们从分析该函数开始,代码如下(kernel/sched/core.c): asmlinkage __visible void __sched ...

  5. Hbase 基本命令

    启动Hbase:./start-hbase.sh 进入Hbase shell控制台:./hbase shell   查看所有表 list   查看数据库状态:status   查看数据库版本:vers ...

  6. ActiveReport资料

    1. ActiveReports for .NET 2 Online | ActiveReports for .NET 3 Online 2.GroupHeader块 ①GroupHeader块为每个 ...

  7. Codevs No.1287 矩阵乘法

    2016-06-01 16:53:23 题目链接: 矩阵乘法 (Codevs No.1287) 题目大意: 给你两个可乘矩阵a,b,求a*b 解法: 定义....... //矩阵乘法 (Codevs ...

  8. EasyUI样式在IE下无法显示原因总结

    1.js css顺序错误 <script type="text/javascript" charset="utf-8" src="js/jque ...

  9. JavaScript——对this指针的新理解

    一直以来对this的理解只在可以用,会用,却没有去深究其本质.这次,借着<JavaScript The Good Parts>,作了一次深刻的理解.(所有调试都可以在控制台中看到,浏览器F ...

  10. JDBC学习笔记(5)——利用反射及JDBC元数据编写通用的查询方法

    JDBC元数据 1)DatabaseMetaData /** * 了解即可:DatabaseMetaData是描述数据库的元数据对象 * 可以由Connection得到 */ 具体的应用代码: @Te ...