Update ooo320-m1
[ooovba.git] / extensions / source / logging / logrecord.cxx
blobc920ed846723c6a388cefb791e3786bb4fd2d219
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: logrecord.cxx,v $
10 * $Revision: 1.3 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_extensions.hxx"
33 #include "logrecord.hxx"
35 /** === begin UNO includes === **/
36 /** === end UNO includes === **/
38 #include <osl/time.h>
39 #include <osl/thread.h>
40 #include <osl/diagnose.h>
42 //........................................................................
43 namespace logging
45 //........................................................................
47 /** === begin UNO using === **/
48 using ::com::sun::star::logging::LogRecord;
49 using ::com::sun::star::util::DateTime;
50 /** === end UNO using === **/
52 //====================================================================
53 //= helper
54 //====================================================================
55 //--------------------------------------------------------------------
56 namespace
58 /** returns a string representation of the current thread
60 @todo
61 We need a way to retrieve the current UNO thread ID as string,
62 which is issue #i77342#
64 ::rtl::OUString getCurrentThreadID()
66 oslThreadIdentifier nThreadID( osl_getThreadIdentifier( NULL ) );
67 return ::rtl::OUString::valueOf( (sal_Int64)nThreadID );
71 //--------------------------------------------------------------------
72 LogRecord createLogRecord( const ::rtl::OUString& _rLoggerName, const ::rtl::OUString& _rClassName,
73 const ::rtl::OUString& _rMethodName, const ::rtl::OUString& _rMessage,
74 sal_Int32 _nLogLevel, oslInterlockedCount _nEventNumber )
76 TimeValue aTimeValue;
77 osl_getSystemTime( &aTimeValue );
79 oslDateTime aDateTime;
80 OSL_VERIFY( osl_getDateTimeFromTimeValue( &aTimeValue, &aDateTime ) );
82 DateTime aTimeStamp;
83 aTimeStamp.Year = aDateTime.Year;
84 aTimeStamp.Month = aDateTime.Month;
85 aTimeStamp.Day = aDateTime.Day;
86 aTimeStamp.Hours = aDateTime.Hours;
87 aTimeStamp.Minutes = aDateTime.Minutes;
88 aTimeStamp.Seconds = aDateTime.Seconds;
89 aTimeStamp.HundredthSeconds = ::sal::static_int_cast< sal_Int16 >( aDateTime.NanoSeconds / 10000000 );
91 return LogRecord(
92 _rLoggerName,
93 _rClassName,
94 _rMethodName,
95 _rMessage,
96 aTimeStamp,
97 _nEventNumber,
98 getCurrentThreadID(),
99 _nLogLevel
103 //........................................................................
104 } // namespace logging
105 //........................................................................