---
name: "Log::Agent::Tag::Caller"
section: "3pm"
platform: "linux"
package: "liblog-agent-perl"
version: "1.005-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Agent::Tag::Caller"
---

# Log::Agent::Tag::Caller(3pm)

formats caller information

## NAME

Log::Agent::Tag::Caller - formats caller information

## SYNOPSIS

```
 Not intended to be used directly
 Inherits from Log::Agent::Tag.
```

## DESCRIPTION

This class handles caller information for Log::Agent services and is not meant to be used directly.

This manpage therefore only documents the creation routine parameters that can be specified at the Log::Agent level via the `"-caller"` switch in the **logconfig()** routine.

## CALLER INFORMATION ENTITIES

This class knows about four entities: *package*, *filename*, *line* and *subroutine*, which are to be understood within the context of the Log::Agent routine being called (e.g. a **logwarn()** routine), namely:

- package

  This is the package name where the call to the **logwarn()** routine was made. It can be specified as "pack" for short, or spelled out completely.

- filename

  This is the file where the call to the **logwarn()** routine was made. It can be specified as "file" for short, or spelled out completely.

- line

  This is the line number where the call to the **logwarn()** routine was made, in file *filename*. The name is short enough to be spelled out completely.

- subroutine

  This is the subroutine where the call to the **logwarn()** routine was made. If the call is made outside a subroutine, this will be empty. The name is long enough to warrant the "sub" abbreviation if you don't wish to spell it out fully.

## CREATION ROUTINE PARAMETERS

The purpose of those parameters is to define how caller information entities (as defined by the previous section) will be formatted within the log message.

- "-display" =\> *string*

  Specifies a string with minimal variable substitution: only the caller information entities specified above, or their abbreviation, will be interpolated. For instance:

  ```
      -display => '($package::$sub/$line)'
  ```

  Don't forget to use simple quotes to avoid having Perl interpolate those as variables, or escape their leading `"$"` sign otherwise. Using this convention was deemed to more readable (and natural in Perl) than SGML entities such as "&pack;".

  Using this switch supersedes the `"-info"` and `"-format"` switches.

- "-format" =\> *printf format*

  Formatting instructions for the caller information entities listed by the `"-info"` switch. For instance:

  ```
      -format => "%s:%4d"
  ```

  if you have specified two entities in `"-info"`.

  The special formatting macro `%a` stands for all the entities specified by `"-info"` and is rendered by a string where values are separated by ":".

- "-info" =\> *"space separated list of parameters"*

  Specifies a list of caller information entities that are to be formatted using the `"-format"` specification. For instance:

  ```
      -info => "pack sub line"
  ```

  would only report those three entities.

- "-postfix" =\> *flag*

  Whether the string resulting from the formatting of the caller information entities should be appended to the regular log message or not (i.e. prepended, which is the default).

- "-separator" =\> *string*

  The separation string between the tag and the log message. A single space by default.

## AUTHORS

Raphael Manfredi \<Raphael\_Manfredi@pobox.com\> created the module, it is currently maintained by Mark Rogaski \<mrogaski@cpan.org\>.

Thanks to Jeff Boes for uncovering wackiness in **caller()**.

## LICENSE

Copyright (C) 1999 Raphael Manfredi. Copyright (C) 2002 Mark Rogaski; all rights reserved.

See **Log::Agent**(3) or the README file included with the distribution for license information.

## SEE ALSO

**Log::Agent**(3), **Log::Agent::Message**(3).
