~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to dolfin/log/log.cpp

  • Committer: Johannes Ring
  • Date: 2008-03-05 22:43:06 UTC
  • Revision ID: johannr@simula.no-20080305224306-2npsdyhfdpl2esji
The BIG commit!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (C) 2003-2007 Anders Logg.
 
2
// Licensed under the GNU LGPL Version 2.1.
 
3
//
 
4
// Thanks to Jim Tilander for many helpful hints.
 
5
//
 
6
// Modified by Ola Skavhaug, 2007.
 
7
//
 
8
// First added:  2003-03-13
 
9
// Last changed: 2007-05-15
 
10
 
 
11
#include <stdarg.h>
 
12
#include <stdio.h>
 
13
#include <signal.h>
 
14
#include "LogManager.h"
 
15
#include "log.h"
 
16
#include <dolfin/main/constants.h>
 
17
 
 
18
using namespace dolfin;
 
19
 
 
20
// Buffers
 
21
static char buffer[DOLFIN_LINELENGTH];
 
22
 
 
23
#define read(buffer, msg) \
 
24
  va_list aptr; \
 
25
  va_start(aptr, msg); \
 
26
  vsnprintf(buffer, DOLFIN_LINELENGTH, msg.c_str(), aptr); \
 
27
  va_end(aptr);
 
28
  
 
29
 
 
30
//-----------------------------------------------------------------------------
 
31
void dolfin::message(std::string msg, ...)
 
32
{
 
33
  read(buffer, msg);
 
34
  LogManager::logger.message(buffer);
 
35
}
 
36
//-----------------------------------------------------------------------------
 
37
void dolfin::message(int debug_level, std::string msg, ...)
 
38
{
 
39
  read(buffer, msg);
 
40
  LogManager::logger.message(buffer, debug_level);
 
41
}
 
42
//-----------------------------------------------------------------------------
 
43
void dolfin::warning(std::string msg, ...)
 
44
{
 
45
  read(buffer, msg);
 
46
  LogManager::logger.warning(buffer);
 
47
}
 
48
//-----------------------------------------------------------------------------
 
49
void dolfin::error(std::string msg, ...)
 
50
{
 
51
  read(buffer, msg);
 
52
  LogManager::logger.error(buffer);
 
53
}
 
54
//-----------------------------------------------------------------------------
 
55
void dolfin::begin(std::string msg, ...)
 
56
{
 
57
  read(buffer, msg);
 
58
  LogManager::logger.begin(buffer);
 
59
}
 
60
//-----------------------------------------------------------------------------
 
61
void dolfin::begin(int debug_level, std::string msg, ...)
 
62
{
 
63
  read(buffer, msg);
 
64
  LogManager::logger.begin(buffer, debug_level);
 
65
}
 
66
//-----------------------------------------------------------------------------
 
67
void dolfin::end()
 
68
{
 
69
  LogManager::logger.end();
 
70
}
 
71
//-----------------------------------------------------------------------------
 
72
void dolfin::__debug(std::string file, unsigned long line,
 
73
                     std::string function, std::string format, ...)
 
74
{
 
75
  read(buffer, format);
 
76
  std::ostringstream ost;
 
77
  ost << file << ":" << line << " in " << function << "()";
 
78
  std::string msg = std::string(buffer) + " [at " + ost.str() + "]";
 
79
  LogManager::logger.__debug(msg);
 
80
}
 
81
//-----------------------------------------------------------------------------
 
82
void dolfin::__dolfin_assert(std::string file, unsigned long line,
 
83
                      std::string function, std::string format, ...)
 
84
{
 
85
  read(buffer, format);
 
86
  std::ostringstream ost;
 
87
  ost << file << ":" << line << " in " << function << "()";
 
88
  std::string msg = std::string(buffer) + " [at " + ost.str() + "]";
 
89
  LogManager::logger.__assert(msg);
 
90
}
 
91
//-----------------------------------------------------------------------------