# PetscLogEventRegister

Registers an event name for logging operations in an application code.

### Synopsis

    #include "petsc.h"
    PetscErrorCode PETSC_DLLEXPORT PetscLogEventRegister(PetscEvent *event, const char name[],PetscCookie cookie)

Not Collective

### Input Parameter

| name | - The name associated with the event
| cookie | - The cookie associated to the class for this event, obtain either with PetscLogClassRegister() or use a predefined one such as KSP_COOKIE, SNES_COOKIE

### Output Parameter

event -The event id for use with PetscLogEventBegin() and PetscLogEventEnd().

### Example of Usage

          PetscEvent USER_EVENT;
          PetscCookie cookie;
          int user_event_flops;
          PetscLogClassRegister(&cookie,"class name");
          PetscLogEventRegister(&USER_EVENT,"User event name",cookie);
          PetscLogEventBegin(USER_EVENT,0,0,0,0);
             [code segment to monitor]
             PetscLogFlops(user_event_flops);
          PetscLogEventEnd(USER_EVENT,0,0,0,0);

### Notes

PETSc automatically logs library events if the code has been compiled with -DPETSC_USE_LOG (which is the default) and -log, -log_summary, or -log_all are specified. PetscLogEventRegister() is intended for logging user events to supplement this PETSc information.

PETSc can gather data for use with the utilities Upshot/Nupshot (part of the MPICH distribution). If PETSc has been compiled with flag -DPETSC_HAVE_MPE (MPE is an additional utility within MPICH), the user can employ another command line option, -log_mpe, to create a logfile, "mpe.log", which can be visualized Upshot/Nupshot.

The cookie is associated with each event so that classes of events can be disabled simultaneously, such as all matrix events. The user can either use an existing cookie, such as MAT_COOKIE, or create their own as shown in the example.

### Keywords

log, event, register

### See Also

PetscLogEventBegin(), PetscLogEventEnd(), PetscLogFlops(),
PetscLogEventMPEActivate(), PetscLogEventMPEDeactivate(), PetscLogEventActivate(), PetscLogEventDeactivate(), PetscLogClassRegister()

Level:intermediate
Location:src/sys/plog/plog.c
Index of all Profiling routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/sys/examples/tutorials/ex3.c.html
src/sys/examples/tutorials/ex3f.F.html
src/vec/vec/examples/tutorials/ex5.c.html
src/ksp/ksp/examples/tutorials/ex9.c.html
src/dm/ao/examples/tutorials/ex2.c.html