Java log code example
Java log example
- 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的更多相关文章
- Java Log Viewer日志查看器
工欲善其事必先利其器 在投奔怒海--一个Domino老程序猿眼里的Java开发我提到眼下所做的Java开发中遇到的大量日志之问题. server控制台刷屏似地滚动,日志文件飞快地增长,debug的时候 ...
- 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 ...
- Java相关|Code Review Checklist(Server)
安全 所有入参均经过校验,包括验证参数数据类型.范围.长度,尽可能采用白名单形式验证所有的输入.对于非法请求,记录WARN log.参考Input Validation Cheat Sheet:前后端 ...
- java log日志的输出。
在Spring框架中添加日志功能: pom.xml <dependency> <groupId>log4j</groupId> <artifactId> ...
- ndk-gdb 对java/native code联合调试(升级版)
之前写过一篇 关于android native 开发,调试的文章(http://www.cnblogs.com/yaozhongxiao/archive/2012/03/13/2393959.html ...
- Effective Java提升Code Coverage代码涵盖率 - 就是爱Java
虽然我们已经有了测试程序,但是如何得知是否已完整测试了主程序?,透过Code Coverage代码涵盖率,我们可以快速地得知,目前系统中,有多少程序中被测试过,不考虑成本跟投资效益比,涵盖率越高,代表 ...
- java Log日志规范
Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...
- 西交利物浦大学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 ...
- [转]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 ...
随机推荐
- 程序破解之 API HOOK技术 z
API HOOK,就是截获API调用的技术,在程序对一个API调用之前先执行你的函数,然后根据你的需要可以执行缺省的API调用或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socke ...
- SSH 连接慢的解决方案详解
SSH 连接慢的解决方案详解 http://www.codeceo.com/article/ssh-slow.html
- JavaScript遍历方式详解
为了方便例子讲解,现有数组和json对象如下: var demoArr = ['Javascript', 'Gulp', 'CSS3', 'Grunt', 'jQuery', 'angular']; ...
- ORA-15005: name "orcl" is already used by an existing alias
在进行ASM操作的时候,如果目录不存在的话,那么可能会报如下的错误: <pre name="code" class="plain">RMAN> ...
- C/C++:作用域、可见性与生存期
作用域 作用域是用来表示某个标识符在什么范围内有效. C++的作用域主要有四种:函数原型作用域.块作用域.类作用域和文件作用域. 由大到小:文件作用域>类作用域>块作用域>函数原型作 ...
- 【转】Yahoo!团队:网站性能优化的35条黄金守则
Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心 ...
- 精妙SQL语句 基础
精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...
- sudo source /etc/profile 提示找不到source命令
今天修改了/etc/profile,需要用source一下,于是写入命令 sudo source /etc/profile 提示找不到source命令 改成 sudo . /etc/profil ...
- Hadoop上路-02_Hadoop FS Shell
一.上传文件/目录 1)put 从本地文件系统中复制N个源路径到目标文件系统. 2)copyFromLocal 源路径须是一个本地文件. 二.下载文件/目录 1)get 复制文件到本地文件系统. 2) ...
- homework03
代码实现真的是大问题……在第二次作业还没有真正实现的情况下只能写这么一篇博客来整理一下从各位大神那里看到的东西. 两个弱菜加起来同样是弱菜,所以我和我的小伙伴的配合就是悲剧的聚合. 首先,大家都说C# ...