Human readable error_log

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • August Karlstrom

    Human readable error_log

    Hi,

    I'm looking for a function that *returns* a human readable string
    representation of an array rather than prints it so I can use it with
    the error_log procedure. Any clues?


    August
  • Curtis

    #2
    Re: Human readable error_log

    August Karlstrom wrote:
    Hi,
    >
    I'm looking for a function that *returns* a human readable string
    representation of an array rather than prints it so I can use it with
    the error_log procedure. Any clues?
    >
    >
    August
    You can use output buffering, or write a function that suits your own
    needs.

    <URL:http://php.net/manual/en/ref.outcontrol. php>

    --
    Curtis

    Comment

    • macca

      #3
      Re: Human readable error_log

      On Oct 8, 11:27 pm, August Karlstrom <fusionf...@gma il.comwrote:
      Hi,
      >
      I'm looking for a function that *returns* a human readable string
      representation of an array rather than prints it so I can use it with
      the error_log procedure. Any clues?
      >
      August
      $string = print_r($array, 1);

      The second param of print_r() is a bool for return value. If true,
      print_r() returns the string to your variable instead of printing to
      the screen.

      RTM here:


      Comment

      • August Karlstrom

        #4
        Re: Human readable error_log

        macca wrote:
        On Oct 8, 11:27 pm, August Karlstrom <fusionf...@gma il.comwrote:
        >Hi,
        >>
        >I'm looking for a function that *returns* a human readable string
        >representati on of an array rather than prints it so I can use it with
        >the error_log procedure. Any clues?
        >>
        >August
        >
        $string = print_r($array, 1);
        >
        The second param of print_r() is a bool for return value. If true,
        print_r() returns the string to your variable instead of printing to
        the screen.
        >
        RTM here:
        >
        http://uk.php.net/manual/en/function.print-r.php
        Thanks. I still have a problem though. For some reason the output
        contains sequences of `\n' instead of newlines.

        Example:

        error_log(print _r(Array(1, 2, 3), 1));

        Output:

        [Thu Oct 09 10:06:37 2008] [error] [client 127.0.0.1] Array\n(\n [0]
        =1\n [1] =2\n [2] =3\n)\n, referer: ...


        August

        Comment

        • =?ISO-8859-1?Q?=22=C1lvaro_G=2E_Vicario=22?=

          #5
          Re: Human readable error_log

          August Karlstrom escribió:
          Thanks. I still have a problem though. For some reason the output
          contains sequences of `\n' instead of newlines.
          >
          Example:
          >
          error_log(print _r(Array(1, 2, 3), 1));
          >
          Output:
          >
          [Thu Oct 09 10:06:37 2008] [error] [client 127.0.0.1] Array\n(\n [0]
          =1\n [1] =2\n [2] =3\n)\n, referer: ...
          error_log() sends errors either to a file or to system logging; the
          latter might not support multi-line output. I've tried this code in
          Windows XP from command line:

          <?php
          ini_set('log_er rors', 1);
          ini_set('error_ log', 'error.log');
          error_log(print _r(Array(1, 2, 3), 1));
          ?>

          It does save line feeds, but it mixes different line endings:
          - Lines themselves use Windows line endings (\r\n)
          - print_r() uses Unix line endings (\n)

          So the log looks ugly in Notepad but looks normal in almost any other
          editor. Your customer logger can take care of that. This works for me:

          <?php
          ini_set('log_er rors', 1);
          ini_set('error_ log', 'error.log');
          error_log(
          strtr(
          print_r(Array(1 , 2, 3), 1),
          array(
          "\r\n" =PHP_EOL,
          "\r" =PHP_EOL,
          "\n" =PHP_EOL,
          )
          )
          );
          ?>


          --
          -- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
          -- Mi sitio sobre programación web: http://bits.demogracia.com
          -- Mi web de humor al baño María: http://www.demogracia.com
          --

          Comment

          • August Karlstrom

            #6
            Re: Human readable error_log

            Álvaro G. Vicario wrote:
            August Karlstrom escribió:
            >Thanks. I still have a problem though. For some reason the output
            >contains sequences of `\n' instead of newlines.
            >>
            >Example:
            >>
            >error_log(prin t_r(Array(1, 2, 3), 1));
            >>
            >Output:
            >>
            >[Thu Oct 09 10:06:37 2008] [error] [client 127.0.0.1] Array\n(\n
            >[0] =1\n [1] =2\n [2] =3\n)\n, referer: ...
            >
            error_log() sends errors either to a file or to system logging; the
            latter might not support multi-line output.
            [...]

            OK, thanks for the information Álvaro.


            August

            Comment

            Working...