【问题标题】:Erlang print entire data structureErlang 打印整个数据结构
【发布时间】:2014-07-10 18:19:18
【问题描述】:

按照a little riak book 第 41 页上的说明,我正在尝试使用以下命令转储环结构:

{ok,Ring} = riak_core_ring_manager:get_my_ring().
riak_core_ring:chash(Ring).

它有效,但数据被忽略了。前 24 个条目被正确打印,但其余的只是被替换为省略号……;见下文。

如何打印完整的环结构?

# riak attach
Attempting to restart script through sudo -H -u riak
Attaching to /tmp/riak/erlang.pipe.1 (^D to exit)
{ok,Ring} = riak_core_ring_manager:get_my_ring().
{ok,{chstate_v2,'riak@riak1',
        [{'riak@riak1',{693,63553468079}},
         {'riak@riak2',{228,63553468008}},
         {'riak@riak3',{131,63553468075}}],
        {128,
         [{0,'riak@riak1'},
          {11417981541647679048466287755595961091061972992,
           'riak@riak2'},
          {22835963083295358096932575511191922182123945984,
           'riak@riak3'},
          {34253944624943037145398863266787883273185918976,
           'riak@riak1'},
          {45671926166590716193865151022383844364247891968,
           'riak@riak2'},
          {57089907708238395242331438777979805455309864960,
           'riak@riak3'},
          {68507889249886074290797726533575766546371837952,
           'riak@riak1'},
          {79925870791533753339264014289171727637433810944,
           'riak@riak2'},
          {91343852333181432387730302044767688728495783936,
           'riak@riak3'},
          {102761833874829111436196589800363649819557756928,
           'riak@riak1'},
          {114179815416476790484662877555959610910619729920,
           'riak@riak2'},
          {125597796958124469533129165311555572001681702912,
           'riak@riak3'},
          {137015778499772148581595453067151533092743675904,
           'riak@riak1'},
          {148433760041419827630061740822747494183805648896,
           'riak@riak2'},
          {159851741583067506678528028578343455274867621888,
           'riak@riak3'},
          {171269723124715185726994316333939416365929594880,
           'riak@riak1'},
          {182687704666362864775460604089535377456991567872,
           'riak@riak2'},
          {194105686208010543823926891845131338548053540864,
           'riak@riak3'},
          {205523667749658222872393179600727299639115513856,
           'riak@riak1'},
          {216941649291305901920859467356323260730177486848,...},
          {...}|...]},
 % snip %
(riak@riak1)4> riak_core_ring:chash(Ring).
{128,
 [{0,'riak@riak1'},
  {11417981541647679048466287755595961091061972992,
   'riak@riak2'},
  {22835963083295358096932575511191922182123945984,
   'riak@riak3'},
  {34253944624943037145398863266787883273185918976,
   'riak@riak1'},
  {45671926166590716193865151022383844364247891968,
   'riak@riak2'},
  {57089907708238395242331438777979805455309864960,
   'riak@riak3'},
  {68507889249886074290797726533575766546371837952,
   'riak@riak1'},
  {79925870791533753339264014289171727637433810944,
   'riak@riak2'},
  {91343852333181432387730302044767688728495783936,
   'riak@riak3'},
  {102761833874829111436196589800363649819557756928,
   'riak@riak1'},
  {114179815416476790484662877555959610910619729920,
   'riak@riak2'},
  {125597796958124469533129165311555572001681702912,
   'riak@riak3'},
  {137015778499772148581595453067151533092743675904,
   'riak@riak1'},
  {148433760041419827630061740822747494183805648896,
   'riak@riak2'},
  {159851741583067506678528028578343455274867621888,
   'riak@riak3'},
  {171269723124715185726994316333939416365929594880,
   'riak@riak1'},
  {182687704666362864775460604089535377456991567872,
   'riak@riak2'},
  {194105686208010543823926891845131338548053540864,
   'riak@riak3'},
  {205523667749658222872393179600727299639115513856,
   'riak@riak1'},
  {216941649291305901920859467356323260730177486848,
   'riak@riak2'},
  {228359630832953580969325755111919221821239459840,
   'riak@riak3'},
  {239777612374601260017792042867515182912301432832,
   'riak@riak1'},
  {251195593916248939066258330623111144003363405824,
   'riak@riak2'},
  {262613575457896618114724618378707105094425378816,
   'riak@riak3'},
  {274031556999544297163190906134303066185487351808,
   'riak@riak1'},
  {285449538541191976211657193889899027276549324800,...},
  {...}|...]}
(riak@riak1)5>

【问题讨论】:

    标签: erlang read-eval-print-loop riak


    【解决方案1】:

    如果您在 shell 中,您可以使用 rp(Term) 打印任意术语而无需截断。

    【讨论】:

    • 谢谢,这成功了:RingDetails = riak_core_ring:chash(Ring). 然后rp(RingDetails).
    【解决方案2】:

    这是一个漂亮的控制台打印机,可以截断输出。您只需要使用普通的io:format("~p~n", [Ring]). 打印值。

    【讨论】:

    • 如果环足够大,~p 漂亮的打印机也会截断。 ~P 会让你增加截断前的深度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2012-08-24
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多