-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Farhan,

On 1/21/17 2:20 AM, Farhan Tariq wrote:
> hi,
> 
> we have tomcat 7.0.68 deployed on linux.
> 
> To capture the log in local system timezone using
> ExtendedAccessLogValve class we change the following line 
> "currentTimestampFormat.setTimeZone(TimeZone.getTimeZone("GMT"))"
> 
> into "currentTimestampFormat.setTimeZone(TimeZone.getDefault())"
> 
> in ElementTimestampStruct class and then compile and replace the 
> catalina.jar in already deployed tomcat.
> 
> Now , The time is sync with the system set time which is GMT+5 but
> somehow date is still operating on GMT as date get changed at 05:00
> AM ( system time). please help me in this regard to understand why
> the above mentioned change have no impact of date field.

Are you saying that at 05:00, the timestamps in your log file look
like this:

2017-01-23 04:59:58 Something happened
2017-01-23 04:59:59 Something happened
2017-01-24 05:00:00 Something happened
2017-01-24 05:00:01 Something happened

?

What does TimeZone.getDefault() return in your environment?

The java.util.Date object in ExtendedAccessLog recons time using only
the epoch time (milliseconds since 1970 in GMT), and always deals with
it as a long integer value. Only the DateFormat should be making any
interpretation at all as to how to format the date.

However, the value of that date only changes once per INTERVAL
milliseconds, and it changes based upon the GMT date. So your
experience is expected given the code.

Your attempt to change the time zone to something non-GMT isn't
compatible with the performance optimizations that have been made to
that class. If you want to completely change the time zone from GMT to
e.g. GMT+5, then you'll need to adjust the epoch time stored in
currentTimestamp by setting it forward by 5 hours.

A single adjustment is not adequate, because the date value coming
from the request for logging will be off by 5 hours each time, and
that value is used to update the cached value.

I don't believe it is going to be easy for you to change the time zone
with such a simple change to your code. You will need to add the
timezone adjustment each time a calculation is performed. For example:

// ExtendedAccessLog.java:217 (tc9/trunk)
            long millis = eds.currentTimestamp.getTime();
            if (date.getTime() > (TZ_ADJ + millis + INTERVAL -1) ||
                    date.getTime() < (TZ_ADJ + millis)) {
                eds.currentTimestamp.setTime(
                        date.getTime() - (date.getTime() % INTERVAL) +
TZ_ADJ);
                eds.currentTimestampString =

eds.currentTimestampFormat.format(eds.currentTimestamp);
            }

You will have to set the value of TZ_ADJ to be 5hrs, or you could
compute it from TimeZone.getDefault(). Note that it won't adjust for
DST or anything like that. I'm not sure if that's a problem for you.

I'm curious... what's wrong with GMT?

- -chris

> On Thu, Dec 15, 2016 at 3:31 AM, Konstantin Kolinko
> <knst.koli...@gmail.com> wrote:
> 
>> 2016-12-14 18:48 GMT+03:00 Farhan Tariq
>> <farhantar...@gmail.com>:
>>> Hello team,
>>> 
>>> I am not sure why the timezone is explicitly set to GMT in 
>>> ExtendedAccessLogValve class? To capture URL encoded parameters
>>> I looking to use this class but need
>> help
>>> to get time in GMT+5. I am using tomcat 7 on redhat. Any
>>> suggestions?
>> 
>> 
>> 1. Please read the mailing list rules: 
>> http://tomcat.apache.org/lists.html#tomcat-users
>> 
>> You have not mentioned what exact version of Tomcat you are using
>> (1.)
>> 
>> 2. Use of GMT in ExtendedAccessLogValve is by design.
>> 
>> That valve implements log format specified by "Extended Log File 
>> Format" specification by W3C, and the specification dictates that
>> the time is in GMT.
>> 
>> http://tomcat.apache.org/tomcat-8.5-doc/config/valve. 
>> html#Extended_Access_Log_Valve
>> 
>> https://www.w3.org/TR/WD-logfile.html
>> 
>> 
>> It may be good to implement configurable timezone in
>> AccessLogValve (currently it uses TimeZone.getDefault()), but I
>> think that ExtendedAccessLogValve shall remain with GMT.
>> 
>> Best regards, Konstantin Kolinko
>> 
>> ---------------------------------------------------------------------
>>
>> 
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>> 
>> 
> 
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJYhiNaAAoJEBzwKT+lPKRYaIIQAJGxF3VN5tfrgtAiAVRHrbCx
wAlmCqqLQ/KpFTxh8JQiDFzmjvjGR8HXfZO9G1RkVAl5VcVWQ8RK6jizVaS21Wfi
BU5XFWiEz2goV9WpoJF12PUrrUKrvZzMo/n9QIXdWsD/wVFbXnUHPYKhhvIHx8uF
TZJRlB2Wav2oCw0gYNG5yMf/B/2afjptonZux3EUWAZHnKzZzvn9+PKVXHcRUWFj
ovtoCTG0NbRKAHphqFIHyL45V27JnkT14XGn8bhBdIQLhifhWfJVtu70HbBluol8
f80JPMNfB3wTzm+4QTMqTa4ZCYQrrA/s2LPicWJ4vKz0r52jnyKGoPDJKT7oQjEn
/ipBO20kH8PGxBjU64wbCEV1KEyCYq1+b/mnlX98KFJudNd4jk30pXAUuxhP2PHv
40GyGWiJ2GGJpzPuh2df0keUbK11JMk4zsq0lSzzfG1ZJuGrey9Eq9kMA92qAv9R
es17bwoJPLbKDcY5Ilvi/O8kGU1kjRVrE647KK4HlVIdV8CDMcLLN2xZ4luz7pJL
L0FlkCedBvy+sBigXC0TTEJG2RZ2qenOC2hwb81ogSTGZ9AhycrsahqYgbm7x7bS
SC3LCu6NNT2+Si9ZIs5DyzdN1fys0ZbRHyMCSM5BQz81NadY8cYiHSHLPS6gRoB8
SyuqhSSaHAqeSZKPp2Fh
=NXSe
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to