📄 rotate.htm
字号:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Limiting the Size of a Log by Using a Rotating Sequence of Files (Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<META CONTENT="no-cache" HTTP-EQUIV="Pragma">
<LINK href="/almanac.css" media="screen" type="text/css" rel="stylesheet">
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
</TABLE>
<br>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD></TD>
</TR>
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top">
<h1>The Java Developers Almanac 1.4</h1>
<br>
Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
</TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD valign="top"><script type="text/javascript">
<!--
google_ad_client = "pub-6001183370374757";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel = "4777242811";
google_ad_type = "text_image";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "6666CC";
google_color_url = "6666CC";
google_color_text = "000000";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></TD><TD> </TD><TD valign="top">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
>
<A HREF="../index.html">List of Packages</A>
>
<A HREF="../java.util.logging/pkg.html">java.util.logging</A><font color="#666666" class="xsmall-font">
[20 examples]
</font>
>
<B><A HREF="../java.util.logging/pkg.html#File Size">File Size</A></B><font color="#666666" class="xsmall-font">
[2 examples]
</font>
</DIV><P>
<h3>e402. Limiting the Size of a Log by Using a Rotating Sequence of Files</h3>
The example <a href="../java.util.logging/LimitFileSize.html" class="eglink"><b>e401</b> Limiting the Size of a Log File</a> shows how to
limit the log file size by automatically emptying it when it reaches
the limit. However, this approach has the disadvantage of discarding
useful information even though the file size might be well within the
limit. The <code>FileHandler</code> allows a more effective approach by allowing
you to use a sequence of files to hold the log information. When a
file fills up, the oldest file is emptied and logging resumes in that
file.
<P> More specifically, if there are <code>N</code> log files in the
sequence, records are always dumped into <code>logfile0</code>. When
<code>logfile0</code> is filled, <code>logfileN-2</code> is renamed to <code>logfileN</code>,
<code>logfileN-3</code> is renamed to <code>logfileN-2</code>, etc. Finally,
<code>logfile0</code> is renamed <code>logfile1</code>. A new <code>logfile0</code> is created
and logging resumes in the new <code>logfile0</code>. To read the log records
in chronological order, you need to process the files from
<code>logfileN-1</code> to <code>logfile0</code>.
<P> The logfile number is called the generation number and ranges
from 0 to the number of logfiles - 1. When specifying the filename
pattern to use for the logfiles, you need to include the location of
the generation number using the <code>%g</code> placeholder. For example,
using a filename pattern of <code>my%g.log</code> with three log files will result
in the files <code>my0.log</code>, <code>my1.log</code>, and <code>my2.log</code>.
<pre> try {
// Create a file handler that uses 3 logfiles, each with a limit of 1Mbyte
String pattern = <font color="#0066ff"><i>"my%g.log"</i></font>;
int limit = <font color="#0066ff"><i>1000000</i></font>; // 1 Mb
int numLogFiles = <font color="#0066ff"><i>3</i></font>;
FileHandler fh = new FileHandler(pattern, limit, numLogFiles);
// Add to logger
Logger logger = Logger.getLogger(<font color="#0066ff"><i>"com.mycompany"</i></font>);
logger.addHandler(fh);
} catch (IOException e) {
}
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
<b>Related Examples</b></font></td>
</tr>
</table>
e401. <a class="eglink" href="LimitFileSize.html?l=rel">
Limiting the Size of a Log File
</a>
<br>
<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
See also:
<a class="eglink" href="/egs/java.util.logging/pkg.html?l=rel#Configuration">
Configuration
</a>
<a class="eglink" href="/egs/java.util.logging/pkg.html?l=rel#Formatters">
Formatters
</a>
<a class="eglink" href="/egs/java.util.logging/pkg.html?l=rel#Levels">
Levels
</a>
</td>
</tr>
</table>
<br>
<br>
<FONT class="xsmall-font">
© 2002 Addison-Wesley.
</FONT></TD><TD> </TD><TD valign="top"><A href="http://compositesw.com/devzone?ref=javaalmanac"><IMG alt="Click Here" height="600" width="120" border="0" src="/csw_oad_120x600_final.gif"></A></TD>
</TR>
</TABLE>
</BODY>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META CONTENT="NO-CACHE" HTTP-EQUIV="PRAGMA">
</HEAD>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -