Proposal to change the behavior of the timestamp place holder (%t) in log file paths

Kevin Walls kevin.walls at oracle.com
Fri Jan 31 08:08:22 UTC 2025


Also relevant are the jcmd commands that take an output filename.  Those have been updated to take %p pid (JDK-8334492) and there was some thought given to adding time/datestamp.  That didn't get completed but will hopefully still happen.

The title of JDK-8204681 might be out of date, it's not just hprof filenames, but all jcmd output files.  More info in https://github.com/openjdk/jdk/pull/20568

Good to keep these things consistent where we can.  8-)

Thanks
Kevin



-----Original Message-----
From: serviceability-dev <serviceability-dev-retn at openjdk.org> On Behalf Of David Holmes
Sent: Friday, January 31, 2025 2:58 AM
To: Larry Cable <larry.cable at oracle.com>; Kemper, William <kemperw at amazon.com>; serviceability-dev <serviceability-dev at openjdk.org>; hotspot-runtime-dev at openjdk.org
Subject: Re: Proposal to change the behavior of the timestamp place holder (%t) in log file paths

On 31/01/2025 4:03 am, Laurence Cable wrote:
> On 1/30/25 9:42 AM, Kemper, William wrote:
>>
>> Thank you all for your comments. We've gotten by using the pid (%p) 
>> as a means of grouping log files from a process. The log messages 
>> themselves include the uptime, so having the start time of the JVM in 
>> the file name has not been useful (and it would be trivial to add in 
>> from startup scripts). I take your points about using the 
>> modification time of the files and will consider this.
>>
> 
> is not also the case that "trivial to add in from startup scripts" 
> also true for creation time?
> 
> perhaps propose a new substitution variable instead of redefining the 
> existing one?
> 
> e.g: %c

There has been some recent discussion (which I can't locate) about enabling various filename substitutions that match with the different Unified Logging timestamp decorators. Also Zhengyu just filed JDK-8349083.

David

> - Larry
> 
>> ---------------------------------------------------------------------
>> ---
>> *From:* Laurence Cable <larry.cable at oracle.com>
>> *Sent:* Thursday, January 30, 2025 9:14:53 AM
>> *To:* Kemper, William; serviceability-dev; David Holmes; hotspot- 
>> runtime-dev at openjdk.org
>> *Subject:* RE: [EXTERNAL] Proposal to change the behavior of the 
>> timestamp place holder (%t) in log file paths
>> CAUTION: This email originated from outside of the organization. Do 
>> not click links or open attachments unless you can confirm the sender 
>> and know the content is safe.
>>
>>
>>
>> On 1/29/25 5:56 PM, David Holmes wrote:
>> > Adding back serviceability-dev
>> >
>> > David
>> >
>> > On 30/01/2025 11:55 am, David Holmes wrote:
>> >> Plus one to what Kevin says. The current specified behaviour seems 
>> >> to me to be what would be generally desired. If there is a desire 
>> >> for a different kind of timestamp to be used then a proposal to 
>> >> add that would be more appropriate I think. I seem to recall 
>> >> something fairly recent about expanding the notion of "timestamp" that can be used here.
>>
>> +2 for Kevin and David's observations; changing the timestamp from 
>> +JVM
>> start time to create time, removes valuable and otherwise 
>> unobtainable (correlation) metadata from the logfile names, file 
>> creation and modification time is available from the underlying O.S 
>> filesystem if needed.
>>
>> Rgds
>>
>> - Larry
>>
>> >>
>> >> David
>> >>
>> >> On 29/01/2025 7:24 pm, Kevin Walls wrote:
>> >>> Hi,
>> >>>
>> >>> Just checking, but are they sure that's what they want? 8-)
>> >>>
>> >>> This relates to files from unified logging, like java - 
>> >>> Xlog:gc*:file%t.out ...creates: file2025-01-28_21-43-53.out and - 
>> >>> Xlog:help says, "If the filename contains %p, %t and/or %hn, they 
>> >>> will expand to the JVM's PID, startup timestamp and host name, 
>> >>> respectively."
>> >>>
>> >>> (Administratively, I think unified logging is under the runtime 
>> >>> group, cc’d.)
>> >>>
>> >>> Using the JVM start time, across all log files, identifies the 
>> >>> set of files that come from the same process.  They will 
>> >>> generally sort together when viewing a directory.  If a single 
>> >>> file gets copied around, it can still be traced back in its 
>> >>> group.   When there are multiple sets of logs in the same 
>> >>> directory, the sets should still sort together.   I see the 
>> >>> filename purpose as to identify the log, or set of logs.
>> >>>
>> >>> Using a new timestamp for each file, the filenames do not 
>> >>> identify the files as being part of the same run.  They may sort 
>> >>> together, but may not if another log series is in the same 
>> >>> directory, and once separated it's hard to regroup them.
>> >>>
>> >>> Using the pid as well will help, but if we see a lot of 
>> >>> low-numbered PIDs then this won't be unique. (With the current 
>> >>> startup timestamp, you will probably use %p for pid in the file 
>> >>> as well, in case JVMs start at the same moment.)
>> >>>
>> >>> Thanks
>> >>>
>> >>> Kevin
>> >>>
>> >>> *From:*serviceability-dev <serviceability-dev-retn at openjdk.org> 
>> >>> *On Behalf Of *Kemper, William
>> >>> *Sent:* Tuesday, January 28, 2025 7:54 PM
>> >>> *To:* serviceability-dev at openjdk.org
>> >>> *Subject:* Proposal to change the behavior of the timestamp place 
>> >>> holder (%t) in log file paths
>> >>>
>> >>> The timestamp place holder in a log filename currently expands to 
>> >>> the startup time of the JVM. When the log is rotated, the 
>> >>> filename containing this timestamp is suffixed with a file 
>> >>> number. My colleagues had expected the placeholder to be 
>> >>> evaluated when the current log file is rotated. They expected the 
>> >>> name of each rotated file to indicate the time the file was 
>> >>> created. I think this expectation is not unreasonable, so I 
>> >>> wanted to discuss the possibility of changing how/when the 
>> >>> timestamp placeholder is evaluated. If there is any appetite for 
>> >>> a change like this, I am willing to do the work. I would prefer 
>> >>> to sort out the details before coding anything, rather than 
>> >>> discussing them in a surprise pull request.
>> >>>
>> >>> Thank you for reading,
>> >>>
>> >>> William
>> >>>
>> >>
>> >
>>
> 



More information about the hotspot-runtime-dev mailing list